docker-compose 解决服务启动完成时间顺序问题
Posted wangzy001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-compose 解决服务启动完成时间顺序问题相关的知识,希望对你有一定的参考价值。
背景:书写了 docker-compose 配置,但是发现服务启动异常,添加 depends_on 依旧如此
原因:depends_on 只能解决服务前后顺序依赖问题,不能判断容器里面的服务是否启动成功,因此当前面的服务没启动成功时就进行连接,造成服务报错
解决方法:
书写一个监控端口的脚本,判断当服务启动完成后,再进行下一个服务启动
vi Dockerfile
FROM centos MAINTAINER wangzy COPY start.sh /opt WORKDIR /opt/ CMD /opt/start.sh
判断脚本
start.sh
#!/bin/bash export JAVA_HOME=/opt/jdk1.8.0_101 export PATH=${JAVA_HOME}/bin:$PATH while : do portNum=$(netstat -antup|grep 8080|wc -l) if [[ $portNum -lt 1 ]]; then sleep 1 else break fi done cd /opt/jos* && sh startup.sh tail -F logs/stdout
以上是关于docker-compose 解决服务启动完成时间顺序问题的主要内容,如果未能解决你的问题,请参考以下文章