docker compose如何控制docker container启动顺序?
来源:11-5 基于Docker-compose与Traefik1.x的容器化部署演示

拧壶冲
2021-01-09
遇到一个问题docker的mysql还没有完全启动,应用程序启动了,发了请求,然后报错了。
所以想请教老师,docker里面如何在yml中定义container启动的顺序?就是必须一个container完全工作了,别的才能启动。
因为docker的mysql container启动后,还不一定mysql完全能访问,我尝试了entryfile的方式,但是也没有成果,
老师有没有这个问题的解决方案,或者相关资料也行?
写回答
1回答
-
xiaomo
2021-01-22
同学你好,这种情况一般需要自己写脚本检查是否启动来解决。比如有个docker-compose.yml:
services: mysql-server: image: mysql-server:5.7 // .... command: ["bash","/check_mysql.sh"] other-server-1: // ... depends-on: - "mysql-server"
其中check_mysql.sh是自定义脚本,会一直循环检查mysql服务是否启动完成(未完成一般就sleep一下,下一个周期再检查);直到mysql启动完成后,check_mysql.sh执行完成并退出,那么就可以启动其余depends-on相关的服务了。
应该也有其他更好的方法,欢迎大家推荐一下。
00
相似问题