我正在尝试对我的nodejs / mongodb / mongoose应用进行docker-ize。 在我的app.js中,我调用了本地数据库:
mongoose.connect('mongodb://'mydbuser":"+mydbpassword"@"localhost"/"+nodekb,{ useMongoClient: true });
我在docker-compose.yml中的服务部分看起来像这样:
mongo:
image: "mongo"
ports:
- "27017:27017"
我正在使用默认的docker mongo映像。 我的本地mongo使用mongo配置文件“ mongod.cfg”:
systemLog:
destination: file
path: "C:\\data\\log\\mongod.log"
storage:
dbPath: "C:\\data"
net:
port: 27017
security:
authorization: enabled
setParameter:
enableLocalhostAuthBypass: false
我该如何注入dbadmin,dbpw和mongo配置文件,以便从docker mongo映像中使用它,我们要做docker-compose吗? 我想使用COPY命令可以很容易地注入mongo配置,但是如何告诉图像使用它呢?
谢谢大家。
答案 0 :(得分:0)
您可以在环境下传递相关信息。在文档上很清楚。
基本设置如下所示。
mongo:
image: mongo
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
答案 1 :(得分:0)
当您要连接到数据库“ root”时,Halil的答案是正确的。
但是,如果要连接到数据库“ nodekb”而不是“ root”,则应首先在数据库“ nodekb”上运行“ db.createUser()”命令(https://docs.mongodb.com/manual/reference/method/db.createUser/index.html)。不幸的是,无法在“ docker-compose.yml”中进行设置。