我注意到在容器中使用芹菜开发,如下所示:
celeryworker:
build: .
user: django
command: celery -A project.celery worker -Q project -l DEBUG
links:
- redis
- postgres
depends_on:
- redis
- postgres
env_file: .env
environment:
DJANGO_SETTINGS_MODULE: config.settings.celery
如果我想对某些芹菜任务进行一些更改,则必须完全重建 docker 映像才能进行最新更改。
所以我尝试了:
docker-compose -f celery.yml down
docker-compose -f celery.yml up
然后,没有任何变化:
docker-compose -f celery.yml down
docker-compsoe -f celery.yml build
docker-compose -f celery.yml up
我有新的变化。
这是这样做的方法吗? 对我来说似乎很慢,一直在重建映像,那么最好有当地的芹菜外站码头工人容器吗?
将
.
(即工作副本(作为卷挂载到正在开发的容器中。
这样,您就可以使用工作目录中的新代码,而无需重建(除非,例如,您要更改依赖项或其他需要重建的内容(。
这个想法在这里由 Heroku 解释,强调我的:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
env_file: .env
depends_on:
- db
volumes:
- ./webapp:/opt/webapp # <--- Whatever code your Celery workers need should be here
db:
image: postgres:latest
ports:
- "5432:5432"
redis:
image: redis:alpine
ports:
- "6379:6379"