Docker-Compose:Tomcat应该等待启动,直到(我的)SQL Dump准备就绪

时间:2018-01-15 10:58:26

标签: docker docker-compose

在我的Docker-Compose.yml中,我定义了一个Tomcat(包括.war-File)和MySQL-Server Image。 当我使用docker-compose时 - MySQL-Server启动并导入SQL-Dump。 Tomcat也开始了。

每次运行docker-compose时,都可以有其他SQL-Skripts(由于Jenkins-Build-Job从gitlab repo中提取脚本)

但我希望让Tomcat等待完成所有SQL-Dump的导入。

有人知道怎么做吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

如果您使用的是docker-compose版本2,则可以为mysql容器指定运行状况检查,然后在condition: service_healthy部分中使用depends_on。例如

之类的东西
services:
  db:
    image: mysql:5.7
    healthcheck:
      test: mysql --protocol=socket -hlocalhost -uroot -p$$MYSQL_ROOT_PASSWORD -e 'SELECT 1'

  tomcat:
    image: tomcat
    depends_on:
      db:
        condition: service_healthy

请参阅https://docs.docker.com/compose/compose-file/compose-file-v2/#depends_on

这在docker-compose 3中不受支持,因此我们目前使用docker-compose 2来避免此问题。