我嘗試新的健康檢查融入我的泊塢窗系統,但我真的不知道如何去做正確的方式:/碼頭工人健康檢查的作曲家文件
的問題是,我的數據庫容器需要更多有時間啓動並初始化數據庫,然後啓動我的主應用程序的容器。 因此:主容器不會正確啓動,導致缺少數據庫連接。 我編寫了一個healthcheck.sh腳本來檢查數據庫容器的連通性,因此主容器在連接可用後開始啓動。但我不知道如何把它正確的Dockerfile和我的搬運工,compose.yml整合
healthcheck.sh是這樣的:
#!bin/bash
COUNTER=0
while [[ $COUNTER = 0 ]]; do
mysql --host=HOST --user="user" --password="password" --database="databasename" --execute="SELECT 1";
if [[ $? == 1 ]]; then
sleep 1
echo "Let's sleep again"
else
COUNTER=1
echo "OK, lets go!"
fi
done
mysql的容器Dockerfile:
FROM repository/mysql-5.6:latest
MAINTAINER Me
... some copies, chmod and so on
VOLUME ["/..."]
EXPOSE 3306
CMD [".../run.sh"]
HEALTHCHECK --interval=1s --timeout=3s CMD ./healthcheck.sh
泊塢窗,撰寫.yml如:
version: '2'
services:
db:
image: db image
restart: always
dns:
- 10.
ports:
- "${MYSQL_EXTERNAL_PORT}:${MYSQL_INTERNAL_PORT}"
environment:
TZ: Europe/Berlin
data:
image: data image
main application:
image: application image
restart: always
dns:
- 10.
ports:
- "${..._EXTERNAL_PORT}:${..._INTERNAL_PORT}"
environment:
TZ: Europe/Berlin
volumes:
- ${HOST_BACKUP_DIR}:/...
volumes_from:
- data
- db
我該如何將此健康檢查集成到我的文檔中ker-compose.yml文件工作? 或者有沒有其他的機會推遲我的主容器啓動容器?
THX馬庫斯
丹科安德烈亞斯,DAS HAB ICH沃爾überlesen – aTTraX