我正在创建一个简单的后端服务。我正在尝试使用环境文件将我的Node.js容器与MongoDB连接。
这是我的docker合成文件
version: '3.7'
services:
web-admin:
build:
context: .
dockerfile: dockerfile
image: node:14.16.0-alpine3.10
container_name: admin-service
restart: unless-stopped
env_file: .env
environment:
- MONGO_HOSTNAME=productDB
- MONGO_PORT=27017
- MONGO_DB=product
volumes:
- /home/dd/experiment/adminservice:/app
- /home/dd/experiment/adminservice/node_modules:/app/node_modules
depends_on:
- productDB
networks:
- admin-network
productDB:
image: mongo
ports:
- "27017:27017"
container_name: productDB
restart: unless-stopped
volumes:
- /productdata:/data/db
networks:
- admin-network
volumes:
productdata:
node_modules:
networks:
admin-network:
driver: bridge这是我的.env文件
MONGO_DB=product
MONGO_PORT=27017这是我的index.js文件的代码块。此外,重试逻辑工作正常,没有错误。
const {
MONGO_HOSTNAME,
MONGO_PORT,
MONGO_DB
} = process.env
//db retry logic
retries = 10;
while(retries)
{
try{
mongoose.connect('mongodb://${MONGO_HOSTNAME}:${MONGO_PORT}/${MONGO_DB}',
{
useNewUrlParser: true ,
keepAlive : true ,
}).then( function()
{
console.log('mongoDB is connected')
})
break;
}
catch(err)
{
console.log(err)
retries -= 1;
console.log('retries left: ${retries}');
}
}现在,当我尝试使用docker-compose up -d命令启动docker-compose时,我的MongoDB容器设置得很好,但是Node.js容器每时每刻都在重新启动。因此,我知道有一些错误正在停止容器,但我无法跟踪错误。
请帮帮我。
发布于 2021-04-03 18:20:22
const MONGO_HOSTNAME = process.env.MONGO_HOSTNAME优先。
发布于 2021-04-05 00:30:40
MONGO_HOSTNAME -如果您使用windows主机,请尝试将其指定为host.docker.internal而不是localhost。
https://stackoverflow.com/questions/66929923
复制相似问题