MongoDB 自动化部署

部署在容器中,并且自动创建所需用户和权限等

bash 复制代码
# 启动 mongoDB
  sudo docker run -dit --name china_fish_mongo \
-p 27017:27017 \
-v /data/project1/db/mongo/config/mongod.conf:/etc/mongod.conf \
-v /data/project1/db/mongo/data:/data/db \
-v /data/project1/db/mongo/logs:/var/log/mongodb \
-v /Scripts/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password_str\
--restart=always  \
mongo:6.0.2

# 启动 redis
sudo docker run -d --restart unless-stopped \
--name china_fish_redis -p 6379:6379 \
-v /dorothy/data/fish_server/redis/:/data \
redis:5 redis-server --save 60 1 "--requirepass password_str"

-v

这个参数可以自动创建指定的目录,注意确保docker 用户在这个目录存在权限

docker-entrypoint-initdb.d 容器第一次启动执行的脚本目录

The /docker-entrypoint-initdb.d directory is a special initialization directory used by several popular database Docker images to automatically execute scripts when a container is first started. This feature allows you to initialize your database with custom schemas, data, or configuration upon container creation.

参考 mongo - Official Image | Docker Hub

/Scripts/init-mongo.js

运行容器后的初始化流程

javascript 复制代码
# 数据库
db = db.getSiblingDB('admin');

# 创建用户
db.createUser({
  user: 'wod',
  pwd: 'ds0nxCM7fc65uM',
  roles: [
    { role: 'readWrite', db: 'xxx1' },
    { role: 'readWrite', db: 'xxx2' },
  ]
});

# 提前创建一些必要索引等
相关推荐
天远Date Lab1 小时前
微服务架构实战:基于天远学历信息高级版构建自动化人才准入网关
人工智能·微服务·架构·自动化
2601_952196361 小时前
计算机科学与技术专业应届生投商业分析岗,需要哪些额外能力?
数据库·oracle
皮皮学姐分享-ppx2 小时前
地级市、省级人才政策强度测算(2000-2025)
大数据·数据库·人工智能·百度·高考
晚安日记wanna2 小时前
大厂禁 JOIN 的真正原因,拆到第四层才清楚
数据库·后端·面试
志栋智能2 小时前
超自动化巡检:驱动持续改进的运维飞轮
运维·自动化
海宇大数据2 小时前
零信任架构实战:基于海宇学历核验版构建自动化风控审查网关
运维·人工智能·架构·自动化
挨踢诗人2 小时前
容联七陌集成金蝶云星空解决方案
自动化
java1234_小锋2 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis
NailiConveyor2 小时前
输送机系统与WMS仓储管理系统集成的5个关键技术点
大数据·运维·自动化·制造·业界资讯
这个DBA有点耶2 小时前
数据融合平台的下一代形态:数据库内核自己就能融合,为什么还要ETL?
数据库·架构·aigc