作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前在 Travis-CI 中,我必须使用 -d
运行 docker-compose,这样它就不会阻止构建过程。不幸的是,这意味着我需要某种方法来确保我的容器在继续测试之前可以运行。我发现最好的方法是使用 sleep
。
除了使用 Docker 的 CI(在我看来这很糟糕)之外,还有人对如何实现这一目标有任何建议吗?
目前我使用:
- 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 ;
或者更好地调用一个格式更好的脚本(您需要创建一个/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 - 如何在不阻塞 ci 和猜测持续时间的情况下进行 docker-compose up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44234239/
我是一名优秀的程序员,十分优秀!