gpt4 book ai didi

node.js - 无法使用Docker中设置的环境系统变量从 Node 连接到MongoDB服务器

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:13 24 4
gpt4 key购买 nike

我正在尝试使用 Node 和 mongodb 镜像构建 Docker 镜像,但无法从 Dockerfile 或 docker-composer 设置环境变量。

Dockerfile:

FROM node

RUN mkdir /app WORKDIR /app COPY package.json /app

RUN npm install COPY . /app

ENV MONGODB_URI 192.168.99.100/myapp

EXPOSE 3030

CMD ["npm", "start"]

docker-compose.yml:

version: "2"

services:

web:

build: .

volumes:

- ./:/app

ports:

- "3030:3030"

environment:

- MONGODB_URI="192.168.99.100/myapp"

links:

- "mongo"

mongo:

image: "mongo"

ports:

- "27017:27017"

volumes_from:

- mongodata

mongodata:

image: tianon/true

volumes:

- /data/db

我正在尝试从配置对象内部获取 MONGODB_URI。console.log 返回预期结果,但我仍然收到错误。

class Config {

constructor() {
this.port = process.env.PORT || 3030;
console.log(process.env.MONGODB_URI);
this.databaseUrl = process.env.MONGODB_URI || 'localhost/myapp';
}

我得到的错误是:

Error: no hostname or hostnames provided in connection string web_1 | at module.exports (/app/node_modules/mongodb/lib/url_parser.js:24:11)

如果我尝试直接使用 URL,而不依赖环境变量,它会正常工作并且我会获得连接。

最佳答案

嗯,显然我刚刚得到了橡皮鸭式的答案。

问题出在“- MONGODB_URI="192.168.99.100/myapp””。该值不应包含在引号中。

我将其设置为“MONGODB_URI=192.168.99.100/myapp”并且工作正常。

关于node.js - 无法使用Docker中设置的环境系统变量从 Node 连接到MongoDB服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40875964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com