0

我正在尝试正确连接到 docker 运行的 mongo 实例。我有以下 config.yml

version: "3"
services:
  mongo-server:
    container_name: mongo-server
    image: mongo:4.4.2
    restart: always
    ports:
      - "27017:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USER}
      - MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
    volumes:
      - mongo-data:/data/db

  app:
    container_name: app
    image: "node:12"
    working_dir: /home/node/app
    environment:
      - NODE_ENV=production
    volumes:
      - ./:/home/node/app
    ports:
      - "8888:8888"
    command: "npm run start"
    depends_on:
      - mongo-server

  mongo-express:
    container_name: mongo-admin
    image: mongo-express:0.54
    restart: always
    ports:
      - "8081:8081"
    environment:
      - ME_CONFIG_MONGODB_SERVER=mongo-server
      - ME_CONFIG_MONGODB_PORT=27017
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
      - ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_ROOT_USER}
      - ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_ROOT_PASSWORD}
      - ME_CONFIG_BASICAUTH_USERNAME=${MONGO_EXPRESS_LOGIN}
      - ME_CONFIG_BASICAUTH_PASSWORD=${MONGO_EXPRESS_PASSWORD}
    depends_on:
      - mongo-server
volumes:
  mongo-data:

我已经使用 docker-compose config 检查了 .env 变量是否正确传递

从那里我通过运行来启动 docker 图像: docker-compose up -d

我发现了如何删除卷,这是第一个主要问题。现在连接到我的应用程序中的数据库是下一步。提供的用户名和密码不能正常工作。

该应用程序正在尝试使用 mongoose connect 连接到以下字符串:

`mongodb://${process.env.MONGO_ROOT_USER}:${process.env.MONGO_ROOT_PASSWORD}@mongo:27017/app`

但这不起作用,我不太清楚为什么。如果有人知道它应该是什么,请告诉我

4

0 回答 0