无法链接mongo docker容器

时间:2019-01-26 19:22:58

标签: mongodb docker

我有一个gepick:latest应用程序(从node创建的图像(Dockerfile):

FROM centos:7

# Create app directory
WORKDIR /usr/src/app

RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
RUN yum install -y nodejs
RUN curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo
RUN rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg
RUN yum install -y yarn
RUN yarn

COPY . .

EXPOSE 8080

CMD [ "yarn", "test-matches-collecting-job"]

我的目标是在docker中运行测试。但这需要mongodb

docker run gepick:latest

...
Mongoose default connection error: MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
...

我尝试链接mongo:4图像容器docker run --link 0d24c3a35d5a gepick:latest,但遇到相同的错误。

1 个答案:

答案 0 :(得分:1)

当您使用docker-compose yaml文件启动容器时,Docker将容器桥接在一起,并允许您在依赖mongo的其他容器处于活动状态之前启动mongo容器...尝试类似

cat my-docker-compose.yml

undefined

所以您的启动顺序可能像

version: '3'
services:

  my-gepick:
    image: gepick:latest
    container_name: blah_gepick
    restart: always
    depends_on:
      - loudmongo
    volumes:
      - /cryptdata5/var/log/blobs:/blobs
      - /webapp/enduser/bundle:/tmp
    environment:
      - MONGO_SERVICE_HOST=loudmongo
      - MONGO_SERVICE_PORT=$GKE_MONGO_PORT
      - MONGO_URL=mongodb://loudmongo:$GKE_MONGO_PORT/test
      - METEOR_SETTINGS=${METEOR_SETTINGS}
      - MAIL_URL=smtp://support@${GKE_DOMAIN_NAME}:blah@loudmail:587/
    links:
      - loudmongo
    ports:
     - 127.0.0.1:3000:3000
    working_dir: /tmp
    command: /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf

  loudmongo:
    image: mongo
    container_name: loud_mongo
    restart: always
    ports:
     - 127.0.0.1:$GKE_MONGO_PORT:$GKE_MONGO_PORT
    volumes:
     - /cryptdata7/var/data/db:/data/db