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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM