![](/img/trans.png)
[英]docker-compose mongodb access env variables in /docker-entrypoint-initdb.d/ script
[英]Docker Compose MongoDB docker-entrypoint-initdb.d is not working
我正在使用以下 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
DB
如果缺少什么,请帮助我
能够借助以下文章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 #################################################################');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.