Docker Compose Volumes不会推送最新的代码
我对Docker(以及所有的工具)都很新颖。 我正在尝试在我的Mac上设置docker机器和容器。
我的容器包含python web应用程序,由flask驱动。 我使用以下语句运行应用程序
app.run(host='0.0.0.0', debug=True)
这就是我的docker-compose.yml的样子:
web: build: . ports: - "5001:5001" volumes: - .:/volcode
当我尝试加载5001托pipe页面(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
由于您正在使用机器,因此无法跟踪本地文件系统上的更改。 当你运行docker-compose build && docker-compose up
,你的目录的内容将被复制到机器内部的docker守护进程中。
如果您想跟踪本地更改,则必须在本地运行docker(Mac用户不可用)。 但是你可以运行一个带有共享文件夹的Linux虚拟机和一个在虚拟机内运行的docker守护进程。
这个问题已被提出是一个即将到来的function 。
你可以在这里find另一个更长的答案。