我如何docker – 没有阻止ci和猜测持续时间组成
目前在Travis-CI中,我必须用-d
运行docker-compose,这样它才不会阻塞构build过程。 不幸的是,这意味着我需要一些方法来确保我的容器在进行testing之前是可操作的。 我发现最好的办法就是sleep
。
除了使用Docker的CI(这是一个臭名昭着的IMO),有没有人有如何完成这个build议?
目前我使用:
- docker-compose up -d - sleep 6
简单一点:
- docker-compose up -d - while true; do echo Checking...; echo $(docker-compose exec service_name test-command something) | grep -q some-output && break; sleep 0.5; done ;
或者更好地调用一个脚本来更好地格式化(您需要创build一个/health-check.sh ):
- docker-compose up -d - while true; do echo Checking...; (docker-compose exec service_name /health-check.sh) && break; sleep 0.5; done ;
/health_check.sh :
#!/bin/bash curl http://localhost:PORT && exit 0 exit 1
docker-compose ps
显示容器的状态,如果一切正常,应该是up。