使用 docker 连接 mongo 和 sapper 服务器

Connect mongo and sapper server with docker

我在一个 sapper/svelte 项目中工作,我需要构建 sapper 项目并将其连接到 mongodb(我需要从 mongo compose from docker -compose.yml)

目前我正在尝试将数据库连接到端口 localhost:27017 上的本地 mongo,但它无法建立连接。我应该怎么办? 这是我的 docker-compose

version: "3.4"

services:
  myapp:
    image: my_image
    deploy:
      update_config:
        delay: 30s
        parallelism: 1
        failure_action: rollback
    ports:
        - "3000:3000"

这是我的docker文件

FROM node:lts-alpine

WORKDIR /app

COPY static static
COPY emails emails

COPY package.json .
ENV NODE_ENV production
RUN npm install

COPY __sapper__/build __sapper__/build

EXPOSE 3000

CMD ["node", "__sapper__/build/index.js"]

另外,我应该怎么做才能直接从 compose 启动 mongo 部署?我在 docker 上有 mongo,但我应该直接从 compose 开始。

我认为 mongo 服务应该添加到 docker-compose.yml.

的服务中

例如。

services:
   mongodb:
      image: mongo
      restart: always
      environment:
         MONGO_INITDB_ROOT_USERNAME: root
         MONGO_INITDB_ROOT_PASSWORD: example

然后,节点应用程序可以通过服务名称访问 mongodb。(例如 mongodb:27017)。

我认为这 URL 会有所帮助。 https://hub.docker.com/_/mongo

version: "3.4"

services:
  app:
    image: yourimage
    ports:
        - "3000:3000"
    environment: 
        - MONGODB_URL=mongodb://yourip/yourdb     
  mongodb:
    image: mongo
    restart: always
    ports:
      - "yourportsdb:yourportsdb"

不需要使用密码和用户对 mongo 进行身份验证,最终它会按照@Jihoon Yeo 的建议通过环境