在我的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的导入。
有人知道怎么做吗?
感谢您的帮助。
答案 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来避免此问题。