我有两个带有docker-compose.yml的容器:
version: "3"
services:
sourcejs:
image: neogucky/myapplication
command: /bin/bash /home/myapplication/startScript.sh
ports:
- "80:8080"
restart: always
links:
- mongo
mongo:
image: mongo
ports:
- "27017:27017"
restart: always
首次启动时,此配置有效:
docker-compose -p productive up -d
现在我遇到了一个奇怪的问题:当我重新启动服务器并且docker自动启动我的两个容器时,有时myapplication容器会陷入无休止的启动循环。由于其部分启动脚本将使用git更新文件,因此需要大约2分钟才能启动需要连接到mongo容器的应用程序。不工作时说
MongoError: failed to connect to server [mongo:27017] on first connect [MongoError: getaddrinfo ENOTFOUND mongo mongo:27017]
Docker不断重启myapplication容器,但错误将包含,除非我重新启动主机。重新启动后,这次有50%的可能性。当输入“docker ps”时,一切看起来都很好,mongo服务器已启动并运行,但myapplication服务器每2分钟一直重启。
有什么想法吗?
答案 0 :(得分:1)
你可以尝试在docker-compose文件中翻转服务的顺序吗?看起来mogodb在预期的时间内没有出现,但它会收集端口,最终在下次重启时无法正常清理。