今天继续分享快速搭建MongoDB数据库脚本。
部署说明
创建目录
mkdir -p ./mongodbdata/mongo_data
初始化脚本
$ vim ./mongodbdata/mongo-init.sh
mongo -- "$MONGO_INITDB_DATABASE" <<EOF
db = db.getSiblingDB('admin')
db.auth('$MONGO_INITDB_ROOT_USERNAME', '$MONGO_INITDB_ROOT_PASSWORD')
db = db.getSiblingDB('$MONGO_INITDB_DATABASE')
db.createUser({
user: "$MONGO_USERNAME",
pwd: "$MONGO_PASSWORD",
roles: [
{ role: 'readWrite', db: '$MONGO_INITDB_DATABASE' }
]
})
EOF
编写docker-compose.yml
注意要使用image: mongo:5.0.13
,如果不加5.0.13
则默认用最新镜像,容器里面没有自带mongo二进制文件,这样会导致初始化用户失败。
version: '3.8'
services:
db:
restart: always
image: mongo:5.0.13
container_name: mongodb-container
ports:
- '27017:27017'
command: [--auth]
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: Testerzhang
MONGO_INITDB_DATABASE: testerzhang
MONGO_USERNAME: testerzhang
MONGO_PASSWORD: Testerzhang
volumes:
- ./mongodbdata/mongo_data:/data/db
- ./mongodbdata/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh
如果需要mongo4.x的,改成image: mongo:4.4.17
即可。
运行
docker-compose up -d
填坑
之前没加版本号,默认是拉取最新镜像,导致初始化新用户跑不了,耽误了不少时间,还是指定下版本稳妥很多了。
本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!
欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。