簡體   English   中英

在Docker-Compose中控制啟動順序

[英]Control startup order in 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

我有一個依賴於Redis Databse容器的容器。 但是,redis需要更長的時間才能加載到內存中,從而導致第一個容器退出。 目前,我正在使用始終重新啟動方法來解決該問題,這是一種解決方法。

我想知道是否有更好的選擇,因為我會盡量避免等待腳本?

您可以在redis容器中指定運行condition: service_healthy ,並將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/docker-compose.yml

通過在docker compose文件中使用“ depends_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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM