需要脚本:init-mongo.sh
- #!/bin/bash
- if which mongosh > /dev/null 2>&1; then
- mongo_init_bin='mongosh'
- else
- mongo_init_bin='mongo'
- fi
- "${mongo_init_bin}" <<EOF
- use ${MONGO_AUTHSOURCE}
- db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
- db.createUser({
- user: "${MONGO_USER}",
- pwd: "${MONGO_PASS}",
- roles: [
- { db: "${MONGO_DBNAME}", role: "dbOwner" },
- { db: "${MONGO_DBNAME}_stat", role: "dbOwner" },
- { db: "${MONGO_DBNAME}_audit", role: "dbOwner" }
- ]
- })
- EOF
复制代码
然后在compose的mongodb里修改
- unifi-db:
- image: docker.io/mongo:<version tag>
- container_name: unifi-db
- environment:
- - MONGO_INITDB_ROOT_USERNAME=root
- - MONGO_INITDB_ROOT_PASSWORD=
- - MONGO_USER=unifi
- - MONGO_PASS=
- - MONGO_DBNAME=unifi
- - MONGO_AUTHSOURCE=admin
- volumes:
- - /path/to/data:/data/db
- - /path/to/init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro
- restart: unless-stopped
复制代码
源地址 |