如何检查Docker映像启动过程是否完成

时间:2019-02-18 14:19:59

标签: docker docker-compose gitlab-ci

我正在尝试使this工作。 我有这个docker-compose.yml文件:

version: '3'
services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    env_file:
      - .env
    volumes:
      - 'mariadb_data:/bitnami'
  magento:
    image: 'bitnami/magento:latest'
    labels:
      kompose.service.type: nodeport
    env_file:
      - .env
    ports:
      - '80:80'
      - '443:443'
    healthcheck:
      test: 'pgrep tini > /dev/null && curl --fail --head --insecure --silent --output /dev/null --write-out %{http_code} ${MAGENTO_HOST}/pub/health_check.php || exit 1'
      interval: 60s
      timeout: 10s
      retries: 20
    volumes:
      - 'magento_data:/bitnami'
    depends_on:
      - mariadb
volumes:
  mariadb_data:
    driver: local
  magento_data:
    driver: local

它与healthcheck部分旁的https://github.com/bitnami/bitnami-docker-magento中的原始文件几乎相同,我检查了启动过程是否完成。 在.gitlab-ci.yml中,我使用

- sleep 800 && echo "sleep end"
- docker-compose-wait -w

等到容器中的magento安装过程结束(我知道从docker logs命令开始大约需要12分钟)。 CI作业总是失败,因为docker-compose-wait返回

Some processes failed:
magento is unhealthy

我对它的[docker-compose.yml文件]进行了本地测试,我知道经过4或5次尝试后,运行状况检查会返回status 0,因此它可以正常工作。

0 个答案:

没有答案