我有一个带有后端的Django网络应用程序的docker-compose.yml
。它看起来像这样:
version: '2'
services:
db:
image: # special image
ports:
- "1433:1433"
environment:
PASSWORD: "*********"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
depends_on:
- db
当我运行sudo docker-compose build
时,第一行输出显示
db uses an image, skipping.
Building web.
我需要在db
之前构建web
图片。
如何首先构建db
图像?
答案 0 :(得分:5)
在构建db
之前,您可以在Detached mode中启动web
容器:
$ docker-compose up -d db
$ docker-compose build web
尽管如此,seems like an anti-pattern。我建议您尽可能保持web
的构建过程通用,而是使用环境变量或command
arguments来完成此任务。
例如,如果您需要将相同的配置值传递给web
和db
,则可以使用an env_file
完成此操作:
# db_credentials.env
USER="django"
PASSWORD="********"
DATABASE="django_db"
在docker-compose.yml
文件中:
services:
db:
# ...
env_file: db_credentials.env
web:
# ...
env_file: db_credentials.env