在Docker-Compose中控制启动订单



是否可以控制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

最新更新