docker-compose mongodb新鲜实例不起作用

努尔

尝试使docker-compose具有以下内容:

    version: '3.1'

    services:
      mongo:
        image: mongo
        container_name: mongo-db
        networks:
          - mongo
        restart: always
        environment:
          MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USER}
          MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD}
          MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}
        ports:
          - 27017:27017
        volumes:
          - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      mongo-express:
        image: mongo-express:latest
        container_name: mongo-express
        restart: always
        networks:
          - mongo
        depends_on:
          - mongo
        ports:
          - 8081:8081
        environment:
          ME_CONFIG_MONGODB_SERVER: mongo
          ME_CONFIG_MONGODB_PORT: 27017
          ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ROOT_USER}
          ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ROOT_PASSWORD}

入口点js文件如下:

db.createUser(
    {
        user: "dba",
        pwd: "dba",
        roles: [
            {
                role: "readWrite",
                db: "mydb"
            }
        ]
    }
);

变量在.env文件中定义如下:

MONGO_ROOT_USER=root
MONGO_ROOT_PASSWORD=root
MONGO_INITDB_DATABASE=mydb
MONGOEXPRESS_LOGIN=dev
MONGOEXPRESS_PASSWORD=dev

登录mongo-express时,看不到mongo-init.js创建的用户或数据库。此外,如果尝试使用以下方式进行连接,则无法登录:

docker exec -it mongo-db mongo --username dba

但是,如果使用以下命令,则可以连接,但运行show dbs时仍然看不到mydb:

docker exec -it mongo-db mongo --username root

这里发生了什么事?

提前致谢

林皮

我认为您需要将环境更改为:

MONGO_INITDB_ROOT_USERNAME  
MONGO_INITDB_ROOT_PASSWORD

这些变量一起使用,可以创建一个新用户并设置该用户的密码。该用户是在admin身份验证数据库中创建的,并具有root角色,即root(超级用户)角色。

查看文件

另一个说明:

如果您不随JavaScript文件一起插入数据,则不会创建数据库。

MONGO_INITDB_DATABASE

该变量允许您在/docker-entrypoint-initdb.d/*.js中指定用于创建脚本的数据库的名称(请参阅下面的初始化新实例)。MongoDB从根本上设计为“首次使用时创建”,因此,如果您不随JavaScript文件一起插入数据,则不会创建数据库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

docker-compose集成在pycharm中不起作用

Docker Compose:NodeJS + MongoDB

Docker Compose主机名命令不起作用

Docker-compose依赖性似乎不起作用

Docker-compose容器端口不起作用

docker-compose设置环境变量不起作用

Docker-compose与MySql的容器连接不起作用

docker-compose-更改docker hub值不起作用?

如果不在localhost代理-> vpn上,则docker-compose端口转发不起作用

当我有“体积”时,Docker Compose不起作用,否则它将起作用。为什么?

移动docker-compose.yml文件时,Nginx图像的docker-compose不起作用

Docker Compose Bash命令在YAML中不起作用,但在容器中起作用

容器在使用Dockerfile时起作用,但在使用docker-compose.yml时不起作用

带有 docker-compose 的 AdminMongo 不起作用

POST 请求在 docker-compose 容器中不起作用

使用 docker-compose 运行 nodejs 不起作用,但使用 docker run 命令

docker compose rails 6 示例与 mailcatcher 不起作用

docker-compose 在特定目录下不起作用

Docker Compose OpenJDK - 卷映射不起作用

Docker Compose 绑定挂载在 GitHub 操作中不起作用

Docker Compose 和 Xdebug 在 PhpStorm 中不起作用

Docker Compose 上带有 Apache2 反向代理的 BaGet 不起作用

docker-compose --env-file 根本不起作用

当 docker-compose 中有命令时,nginx docker alpine envsubst 不起作用

在没有 sudo 的情况下使用 docker-compose 不起作用

使用 docker compose up 的本地主机不起作用

Traefik 的“使用 docker-compose 的基本示例”不起作用

氣流 docker-compose.yml 中的連接管理根本不起作用?

Docker Compose - Python 实例