Docker与mongo容器组合不规则地不连接

时间:2018-05-24 09:48:01

标签: mongodb docker docker-compose

我有两个带有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分钟一直重启。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以尝试在docker-compose文件中翻转服务的顺序吗?看起来mogodb在预期的时间内没有出现,但它会收集端口,最终在下次重启时无法正常清理。