【问题标题】:Node app cannot connect to mongo image on my ubuntu instance节点应用程序无法连接到我的 ubuntu 实例上的 mongo 映像
【发布时间】:2021-04-03 19:01:58
【问题描述】:

MongoServerSelectionError: getaddrinfo ENOTFOUND mongo

是我尝试运行 docker-compose build 时遇到的错误。

这是我的 docker-compse.yml 文件

version: '3'
services:
  app:
    container_name: node-app
    build: .
    ports:
      - "3000:3000"
    restart: always
    volumes:
      - ./uploads:/app/uploads
    links:
      - mongo
  mongo:
    container_name: mongo
    image: mongo
    volumes:
      - ./data:/data/db
    ports:
      - "27017:27017"
    command: mongod

还有我的 Dockerfile

# https://docs.docker.com/samples/library/node/
ARG NODE_VERSION=12.10.0
# https://github.com/Yelp/dumb-init/releases
ARG DUMB_INIT_VERSION=1.2.2

# Build container
FROM node:${NODE_VERSION}-alpine AS build
ARG DUMB_INIT_VERSION

WORKDIR /home/node

RUN apk add --no-cache build-base python2 yarn && \
    wget -O dumb-init -q https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64 && \
    chmod +x dumb-init
ADD . /home/node
RUN yarn install && yarn build && yarn cache clean

# Runtime container
FROM node:${NODE_VERSION}-alpine

WORKDIR /home/node

COPY --from=build /home/node /home/node

EXPOSE 3000
CMD ["./dumb-init", "yarn", "start"]

我在代码中的连接字符串是 mongodb://mongo:27017/{db_name}

当我运行docker ps -a 时,我可以清楚地看到我的 mongo 图像在那里。我在谷歌上搜索了这个问题,并尝试了连接字符串的荒谬组合来尝试连接到 mongo,但是有没有人有任何补充信息或调试建议来克服这个问题?

【问题讨论】:

  • 你说你在构建过程中遇到了这个问题? Dockerfile 中的代码永远无法连接到其他容器;您执行的任何取决于数据库的步骤都需要在容器启动时发生。

标签: mongodb docker ubuntu docker-compose keystonejs


【解决方案1】:

问题很可能是您在没有传递--bind_ip_all 参数的情况下启动了mongod。默认情况下,mongod 仅绑定到 127.0.0.1,如 by other SO posts.

所述

【讨论】:

    猜你喜欢
    • 2022-11-25
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多