【问题标题】:Connect mongo and sapper server with docker用 docker 连接 mongo 和 sapper 服务器
【发布时间】:2021-02-11 07:41:53
【问题描述】:

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

目前我试图将 db 连接到端口 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"

这里是我的 dockerfile

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 开始。

【问题讨论】:

    标签: node.js docker docker-compose svelte sapper


    【解决方案1】:

    我认为应该将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

    【讨论】:

      【解决方案2】:
      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 的建议通过环境

      【讨论】:

        猜你喜欢
        • 2017-11-25
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        • 2012-10-30
        • 1970-01-01
        相关资源
        最近更新 更多