是否可以控制docker-compose中启动容器的顺序?
?https://docs.docker.com/compose/startup-order/
version: "2"
services:
web:
build: .
ports:
- "80:8000"
depends_on:
- "db"
command: ["./wait-for-it.sh", "db:5432", "--", "python", "app.py"]
db:
image: postgres
i有一个取决于Redis Databse容器的容器。但是,Redis在内存中加载需要更长的时间,这会导致第一个容器退出。目前,我始终使用重新启动方法来处理问题作为解决方法。
我想知道是否有更好的选择,因为我会尝试避免等待脚本?
您可以在redis容器中指定健康检查,然后将condition: service_healthy
添加到depends_on
字段中。这起作用,因为构成2.1
version: "2.1"
services:
web:
build: .
ports:
- "80:8000"
depends_on:
"db":
condition: service_healthy
command: ["python", "app.py"]
db:
image: postgres
用法的详细示例在这里:https://github.com/peter-evans/docker-compose-healthcheck/blob/master/master/docker-compose.yml
通过在docker撰写文件中使用" deweds_on"命令,可以更改容器的起始顺序,并将优先级给予早日启动所需的容器。
nginx:
container_name: OTP-Nginx
build:
context: ./nginx
args:
- comapanycode=${COMPANY_CODE}
- dbtype=${DB_TYPE}
ports:
- "80:80"
links:
- db:db
volumes:
- ./nginx/octopus_nginx_params:/etc/nginx/octopus_nginx_params
enabled/retail.octopusdashboard.com
- /home/eleos/octopusupdates/DASHBOARDGLOBAL/branches-cdbwip:/var/www/${COMPANY_CODE}/cdb
depends_on:
- db