防止在docker-compose中跳过

我有一个docker-compose.yml的Djangonetworking应用程序与后端。 它看起来像这样:

 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. 

我需要在web之前build立db映像。

我怎样才能让db图像先build立?

在构buildweb之前,你可以在Detached模式下启动你的db容器:

 $ docker-compose up -d db $ docker-compose build web 

不过,这似乎是一个反模式 。 我build议你保持web的构build过程尽可能通用,而是使用环境variables或command参数来实现这一点。

例如,如果您需要将相同的configuration值传递给webdb ,则可以使用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