使用 docker-compose 管理本地容器组,是非常方便的手段,但是最近遇到一个 bug,决定使用 docker stack /swarm 替代 docker-compose 。
命令行生成二维码可以试试
echo "二维码内容" | qrencode -o - -t UTF8
事情是这样的,在 docker-compose.yaml 内定义了 network.aliases 之后,在测试的时候,其他容器能够正常通过 aliases 对其进行访问,但是,到了实际部署的时候,很容易失败,例如重启之后,或者某个容器意外或者手动重启之后,都有可能导致该情况,导致很湿郁闷。
遂,在查找资料之后,决定替换掉 docker-compose。
Ps:
docker-compose的配置depends_on只会控制控制启动顺序,并不会等待所需容器启动成功之后再启动下一 容器
简单来说,启动容器数据库之后会马上启动容器应用,并不在乎应用容器需要数据库容器才能正常运行,此时可能会造成应用容器无法找到数据库而意外退出。