docker-compose.yml
mongo:
image: mongo:3.4.13-jessie
restart: always
ports:
- "27019:27017"
volumes:
- ./db1.js:/docker-entrypoint-initdb.d/db1.js:ro
- ./db2.js:/docker-entrypoint-initdb.d/db2.js:ro
db1.js
use testdba;
db.getCollection("users").insert({
"name": "A"
})
db2.js
use testdbb;
db.getCollection("users").insert({
"name": "B"
})
将文件复制到mongo容器中,但不执行
我的理解是docker-entrypoint-initdb.d/
中的文件(* .js)被执行了,但是通过上面的设置却没有执行
有人知道我想念什么吗?
也在我发现的一些帖子中
environment:
MONGO_INITDB_ROOT_USERNAME: test
MONGO_INITDB_ROOT_PASSWORD: test
MONGO_INITDB_DATABASE: admin
在执行.js fils之前,我是否需要添加root用户?
答案 0 :(得分:0)
MongoDB找到您的文件并尝试执行它们,但是失败。您可以在日志中找到docker-compose logs -f
,并在其尝试运行第一个js文件的行中查找。
要解决此问题,请在您的js文件中使用以下语法:
db.testdba.getCollection("users").insert({
"name": "A"
});
在编辑完两个文件之后,请使用docker-compose up -d
启动服务。再次检查日志,您将看到文件已成功执行。