其他分享
首页 > 其他分享> > docker-compose 解决服务启动完成时间顺序问题

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

 

标签:opt,compose,服务,启动,start,depends,sh,docker,顺序
来源: https://www.cnblogs.com/wangzy-tongq/p/14888937.html