我正在尝试正确连接到 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`
但这不起作用,我不太清楚为什么。如果有人知道它应该是什么,请告诉我