Docker Compose Volumes无法推送最新代码

时间:2015-09-13 01:15:35

标签: python flask docker docker-compose docker-machine

我对Docker(以及所有工具)都很陌生。我正在尝试在我的mac上设置一个docker机器和容器。

我的容器包含由flask提供支持的python web应用程序。我正在使用以下语句运行应用程序

app.run(host='0.0.0.0', debug=True)

这就是我的docker-compose.yml的样子:

web:
  build: .                                                                                                                                                                                                
  ports:                                                                                                                                                                                                  
   - "5001:5001"                                                                                                                                                                                         
  volumes:                                                                                                                                                                                                
   - .:/volcode                                                                                                                                                                                          

当我尝试加载托管在5001(docker-machine-ip:5001)的页面时,我看不到对Web应用程序所做的更改,除非我做了

 docker-compose build && docker-compose up

更新:

这是我的Dockerfile:

FROM ubuntu:14.04
RUN apt-get -yqq update
RUN apt-get install -yqq python2.7
RUN apt-get install -yqq python-dev
RUN apt-get install -yqq libpq-dev
RUN apt-get install -yqq python-psycopg2
RUN apt-get install -yqq python-pip
ADD . /code
WORKDIR /code
RUN pip install -r server/requirements.txt
CMD python server/src/rest_server.py

这也相当于热负荷。 (debug = True)应重新加载已更改的python文件。

app.run(host='0.0.0.0', debug=True)

更新2:

请注意,docker-compose.yml和Dockerfile中的挂载点不同。具有相同的安装点会导致以下错误。

python: can't open file 'server/src/rest_server.py': [Errno 2] No such file or directory

1 个答案:

答案 0 :(得分:1)

由于您使用的是计算机,因此无法跟踪本地文件系统上的更改。当您运行docker-compose build && docker-compose up时,目录的内容将复制到计算机内的docker守护程序。

如果要跟踪本地更改,则必须在本地运行docker(Mac用户无法使用)。但是你可以运行带有共享文件夹的Linux vm和在vm中运行的docker守护进程。

此问题已被提议为upcoming feature

您可以找到另一个更长的答案here