mongodb - Docker Compose MongoDB docker-entrypoint-initdb.d 不工作
问题描述
我正在使用以下 docker-compose 文件
version: '3.7'
services:
db_container:
image: mongo:latest
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: password
MONGO_INITDB_DATABASE: root-db
ports:
- 27017:27017
volumes:
- ./database/initdb.js:/docker-entrypoint-initdb.d/initdb.js:ro
- ./data:/data/db
这是我的 initdb.js 文件
db.createUser(
{
user: "api-test",
pwd: "api-test",
roles: [
{
role: "readWrite",
db: "api-test"
}
]
}
);
我只能看到 3 个数据库,无法连接到api-test
数据库
如果缺少某些东西,请帮助我
解决方案
可以借助以下文章 Docker-Compose mongoDB Prod, Dev, Test Environment解决问题
文件结构应该是
Project
├── docker-compose.yml (File)
├── docker-entrypoint-initdb.d (Directory)
│ ├── mongo-init.js (File)
docker-compose.yml 文件
version: '3.7'
services:
mongo:
container_name: container-mongodb
image: mongo:latest
restart: always
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: password
MONGO_INITDB_DATABASE: root-db
volumes:
- ./docker-entrypoint-initdb.d/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
mongo-init.js文件
print('Start #################################################################');
db = db.getSiblingDB('api_prod_db');
db.createUser(
{
user: 'api_user',
pwd: 'api1234',
roles: [{ role: 'readWrite', db: 'api_prod_db' }],
},
);
db.createCollection('users');
db = db.getSiblingDB('api_dev_db');
db.createUser(
{
user: 'api_user',
pwd: 'api1234',
roles: [{ role: 'readWrite', db: 'api_dev_db' }],
},
);
db.createCollection('users');
db = db.getSiblingDB('api_test_db');
db.createUser(
{
user: 'api_user',
pwd: 'api1234',
roles: [{ role: 'readWrite', db: 'api_test_db' }],
},
);
db.createCollection('users');
print('END #################################################################');
推荐阅读
- javascript - 如何解决 React 中的意外令牌 (<) 错误?
- json - 使用 pyspark 将平面数据帧写入数据块中的 json 时维护列顺序
- python-3.x - 将数据插入数据库的简单 Flask 应用程序在本地工作,但在部署时无法工作
- javascript - 将一个组件嵌套到另一个组件中有什么用
- ansible - Ansible 从列表中删除项目
- windows - 在目录中保留 100 个最新文件 - Windows 脚本移植
- python - 从混合效应随机森林中获取特征重要性
- matlab - MATLAB 数据光标不会点击每个绘图点 (R2018b)
- python - 如何通过xdist插件并行执行pytest?
- azure-service-fabric - Service Fabric ServicePartitionResolver.ResolveAsync 似乎忽略了负载均衡器