【发布时间】:2021-06-02 08:03:49
【问题描述】:
我目前正在创建一个数据库和一个控制它的 python 文件。我遇到的问题是它运行但用户的创建似乎没有在 docker-compose up 命令后发生。我对 Mongo 用户的了解有限,但实际上我现在只需要一个拥有大部分权限的用户。我的 docker-compose 文件如下所示:
version: '3'
services:
storing_script:
build:
context: .
dockerfile: Dockerfile
depends_on:
- mongo
mongo:
image: mongo:latest
environment:
MONGO_INITDB_ROOT_USERNAME: user
MONGO_INITDB_ROOT_PASSWORD: pas342%4@!
MONGO_INITDB_DATABASE: motionDB
volumes:
- ${PWD}/mongo-data:/data/db
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
command: mongod --port 27018
restart: unless-stopped
存储脚本有自己的 DockerFile。我已经连接到 mongo 容器并且它确实运行,它确实工作但它似乎完全忽略了用户的创建。我在卷中指定使用 js 文件进行创建,如下所示:
db.createUser(
{
user: "<user for database which shall be created>",
pwd: "<password of user>",
roles: [
{
role: "readWrite",
db: "<database to create>"
}
]
}
);
是我的撰写文件有问题,还是我需要手动创建和验证用户?我查看了其他主题,他们似乎都推荐这个。在运行 docker-compose up 时,一个特定的话题说我应该收到一个“用户创建的”(https://stackoverflow.com/a/42973849/15718345),但我从来没有收到过。同样,我不是 Mongo 专家,我的目标只是让 a 用户尽快工作。
【问题讨论】: