美文网首页
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