【发布时间】:2022-02-03 14:47:14
【问题描述】:
我有以下heroku.yml 文件用于容器部署:
build:
docker:
release:
dockerfile: Dockerfile
target: release_image
web: Dockerfile
config:
PROD: "True"
release:
image: web
command:
- python manage.py collectstatic --noinput && python manage.py migrate users && python manage.py migrate
run:
# web: python manage.py runserver 0.0.0.0:$PORT
web: daphne config.asgi:application --port $PORT --bind 0.0.0.0 -v2
celery:
command:
- celery --app=my_app worker --pool=prefork --concurrency=4 --statedb=celery/worker.state -l info
image: web
celery_beat:
command:
- celery --app=my_app beat -l info
image: web
当我部署时,我收到以下警告,这对我来说没有任何意义:
Warning: You have declared both a release process type and a release section. Your release process type will be overridden.
我的Dockerfile 由两个阶段组成,我只想保留release_image 阶段:
FROM python:3.8 as builder
...
FROM python:3.8-slim as release_image
...
根据docs 选择release_image 的正确方法是在build 步骤中使用target 部分。
但它也是mentions,我可以在release 部分中运行我的迁移。
那么我应该怎么做才能消除此警告?只有在部署期间明确考虑我的migrations 和target 时,我才能忍受它。提前致谢!
【问题讨论】:
标签: django docker heroku yaml docker-container