首页 > 解决方案 > docker-compose 卷未同步

问题描述

问题

我使用 docker-compose 进行 Python/Flask 开发。我希望我的主机代码库与 docker 容器内的一个同步,但不...

情况

我的工作目录结构如下:

.
├── Dockerfile
├── docker-compose.yml
├── app.py
└── requirements.txt

我从主机的当前目录绑定挂载到容器的/app.

Dockerfile:

FROM python:3.7.3-alpine3.9

WORKDIR /app

COPY requirements.txt requirements.txt

RUN pip install --upgrade pip && \
  pip install -r requirements.txt

COPY . .

CMD gunicorn -b 0.0.0.0:9000 -w 4 app:app

码头工人-compose.yml:

version: '3'
services:
  web:
    build: .
    ports:
      - "4649:9000"
    volumes:
      - .:/app

当我访问时,http://localhost:4649我可以看到正确的响应,因此 Docker 容器运行良好。但是,当我更改时,响应不会更新app.py

我检查了容器,结果如下

"Mounts": [
            {
                "Type": "bind",
                "Source": "/Users/emp-mac-zakiooo/dev/jinja-pwa",
                "Destination": "/app",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

它看起来很正确,所以我不知道这个问题

标签: dockerdocker-composedockerfile

解决方案


天哪,我发现我的文件已正确同步,但 gunicorn 将它们缓存起来,因此添加--reloadCMDin 中Dockerfile,最后修复了。感谢您的帮助,并为我的愚蠢感到抱歉……!


推荐阅读