云计算核心技术Docker教程:docker-compose控制服务启动和关闭顺序
docker-compose可以使用depends_on选项控制服务启动和关闭的顺序。撰写总是开始和依赖顺序,其中依赖性是通过确定停止容器 depends_on,links,volumes_from,和云计network_mode: "service:..."。
但是,对于启动而言,Compose不会等到容器“就绪”(对于您的特定应用程序意味着什么)之后,才等到它运行时。这是有充分的理由的。
等待数据库(例如)算核准备就绪的问题实际上只是分布式系统更大问题的一部分。在生产中,您的数据库可能随时不可用或移动主机。您的应用程序需要能够应对这些类型的故障。
要解决此问题,请设计您的应用程序以尝试在失败后重新建立与数据库的心技连接。如果应用程序重试连接,则它最终可以连接到数据库。
最好的解决方案是在启动时以及由于某种原因而断开连接时都在应用程序代码中执行此检查。但是,如果不需要此级别的弹性,则可以使用包装器脚本解决此问题:
使用术D诸如wait-for-it, dockerize,sh-compatible wait-for或RelayAndContainers模板之类的工具。这些是小的包装脚本,您可以在应用程序的映像中包括这些脚本,以轮询oc给定的主机和端口,直到它接受TCP连接为止。
例如,使用wait-for-it.sh或wait-for包装服务的命令:
version: "2"
services:
web:
&nkebsp; build: .
ports:
&r教nbsp; - "80:8000"
depends_on:
 程:; - "db"
command: ["./wait-for-it.sh", "db:5432", "--", "python", "app.py"]
&donbsp; db:
image: postgres
第一个解决方案有局限性。例如,它不验证特定服务何时真正就绪。如果您向命令添加更多参数,请将该bckash shift命令与循环一起使用,如下例所示。
或者,编写您自己的包装器脚本以执行更特定于应用程序的运行状况检查。例如,您可能要等到Postgres准备好接受命令:
#!/bin/sh
# wait-for-postergres.sh
set -e
host="$1"
shift
cmd="$@"
until PGPASSWORD=$POSTGRES_PASSWORD psql -h "$host" -U "postgres" -c '\q'; do
>-c;&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
>&2 echo "Postgres is up - executing command"
exomec $cmd
您可以通过设置以下内容,将其用作上一个示例中的包装脚本:
command: ["./wait-for-postgres.sh", "db", "python", "app.py"]
- ·微软发布 UserLM-8b:“陪练伙伴”模型以逼真多轮对话精炼 AI 助手
- ·标签: 药明生物 CRDMO XDC 生物药
- ·标签: 卡诺普 港交所 工业机器人 具身智能
- ·机器学习在网络中的现实应用
- ·甲骨文与谷歌云联手,Gemini 先进AI模型即将来袭
- ·DeepSeek 推出 AI 生成内容标识,确保用户信息安全
- ·标签: WPS 金山软件 看图 广告
- ·谷歌云计算部门实行共享办公:两名员工合用一个工位
- ·标签: 高德 袋马 VibeCoding 微信小程序
- ·标签: 傅里叶半导体 港股上市 18C芯片 暗盘交易
- ·云安全日报210427:苹果Windows版iCloud发现敏感信息泄露漏洞,需要尽快升级
- ·标签: AI人才 中国研究人员 Meta 硅谷
- ·中国信通院人工智能研究所联合发布《大模型一体机应用研究报告(2025年)》
- ·关于混合云成功 企业需要忘记的5件事和需要记住的4件事
- ·标签: 滴滴出行 春运打车 滴滴充电 滴滴加油
- ·OpenAI CEO 预告:2028 年实现全自动 AI 研究员
- ·https://www.lyrics.com/lyrics/小旋风万能蜘蛛池【tg:seogoogle987】,FqX
- ·https://wydden.com/?ID=r8w9WMSKWkOcmiaFWaUv0dzMdqZWfKtF&s=小旋风万能蜘蛛池【tg:seogoogle987】,QOf
- ·https://www.abbreviations.com/小旋风万能蜘蛛池【tg:seogoogle987】oFA
- ·https://wwwcp.umes.edu/search/小旋风万能蜘蛛池【tg:seogoogle987】,Bsw
- ·https://www.sweat.com/collections/vendors?q=小旋风万能蜘蛛池【tg:seogoogle987】,f6j
- ·https://www.vfw.org/search-results?q=小旋风万能蜘蛛池【tg:seogoogle987】,uEE
- ·https://www.roberthalf.com/us/en/jobs/all/小旋风万能蜘蛛池【tg:seogoogle987】3Dx
- ·https://www.sic-info.org/en/?s=小旋风万能蜘蛛池【tg:seogoogle987】,udJ
- ·https://www.rookwinkel.nl/catalogsearch/result/index/?q=小旋风万能蜘蛛池【tg:seogoogle987】,ULu
- ·https://www.goodreads.com/quotes/tag/小旋风万能蜘蛛池【tg:seogoogle987】TRp
- ·Canalys:2024年第二季度,中国大陆云服务支出增长8%
- ·云计算开发:Python3集合内置Set difference()方法
- ·标签: 美光 Micron 存储器芯片 DRAM
- ·Liquid AI 推出 LFM2-VL 模型,为手机带来「小巧又灵敏」的AI 视觉语言能力
- ·12.9英寸还不够 苹果正探索更大尺寸iPad
- ·Snap紧跟Facebook步伐:研发下一代增强现实智能眼镜
- ·标签: 标签 追觅科技 芯际穿越 天穹芯片 瑶台算力盒 AWE2026
- ·标签: 广州地铁 摇一摇广告 App优化
- ·标签: AWS AmazonConnect AgenticAI 供应链Agent
- ·谷歌Gemini能耗大揭秘!单次回答仅耗微波炉一秒电量,AI绿色革命悄然开启
