【发布时间】: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