【发布时间】:2017-04-26 19:50:20
【问题描述】:
我有一些使用 docker compose 运行的容器,但我找不到一种方法来正确更新我的容器,而无需删除它并重新创建它。我有一个 Python 应用程序,我可以成功部署代码更改并应用这些更改,但是如果我添加诸如 css、js 或图像之类的文件,这些文件将无法进入容器。
我已尝试使用此命令,即使在控制台中它按预期记录消息(在没有缓存的情况下重建它)我没有成功:
docker-compose build --no-cache web && docker-compose up -d
对我有用的唯一命令是像这样删除它:
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) && docker rmi $(docker images -a -q)
然后构建和部署:
docker-compose build && docker-compose up -d
这是我的 docker-compose.yml:
web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
- redis
volumes:
- /usr/src/app/donare/static
env_file: .env
command: /usr/local/bin/gunicorn -w 2 -b :8000 --limit-request-line 16384 donare.app:app
nginx:
restart: always
build: ./nginx/
ports:
- "80:80"
volumes:
- /www/static
volumes_from:
- web
links:
- web:web
data:
restart: always
image: postgres:latest
volumes:
- /var/lib/postgresql
command: "true"
postgres:
restart: always
build: .
dockerfile: dockerfile-postgres
volumes_from:
- data
ports:
- "5432:5432"
redis:
image: redis
celery:
build: ./web
command: celery worker --app=donare.tasks.tasks
volumes:
- .:/code
links:
- postgres
- redis
【问题讨论】:
标签: docker docker-compose dockerfile docker-machine