美文网首页
docker-compose使用shell脚本安装MongoDB

docker-compose使用shell脚本安装MongoDB

作者: 塔塔七 | 来源:发表于2022-08-05 17:42 被阅读0次

使用脚本安装MongoDB ,初始化时配置用户名密码,及数据库等信息

启动文件 docker-compose.yml

version: '3.1'
services:
  mongo:
    image: mongo:3.6.18
    container_name: mongo_server
    env_file:
      - ${NODE_ENV}.env
    ports:
      - 27017:27017
    volumes:
      - ./init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh
      - ./data/db:/data/db

ports 前面是对外端口,例:- 2000:27017 ,则暴露给外部的端口为2000

执行脚本文件 init-mongo.sh

mongo -- "$MONGO_INITDB_DATABASE" <<EOF
    var rootUser = '$MONGO_INITDB_ROOT_USERNAME';
    var rootPassword = '$MONGO_INITDB_ROOT_PASSWORD';
    var admin = db.getSiblingDB('admin');
    admin.auth(rootUser, rootPassword);

    var user = '$MONGO_INITDB_USERNAME';
    var passwd = '$MONGO_INITDB_PASSWORD';
    db.createUser({user: user, pwd: passwd, roles: ["readWrite"]});
EOF

配置文件 .env (为用户名密码及数据库)

# define env var default value.
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=root
MONGO_INITDB_DATABASE=DATABASE
MONGO_INITDB_USERNAME=admin
MONGO_INITDB_PASSWORD=admin

启动方式 docker-compose up -d

注:只有第一次启动时,参数会被写入数据库,通过docker-compose停止再次启动,脚本及配置文件修改无效,需要删除数据库重新执行才可以。
如果继续添加数据库,用户名和密码需要重新设置,Navicat设置用户权限前需要先建立一个表

相关文章

网友评论

      本文标题:docker-compose使用shell脚本安装MongoDB

      本文链接:https://www.haomeiwen.com/subject/nowcuqtx.html