首页 > 解决方案 > 如何通过 docker-compose 在 docker 上创建用户和登录 mongodb 数据库?

问题描述

我在 docker 上有一个正在运行的 mongodb。我在上面创建了用户,但我无法使用来自 docker-compose 的用户凭据登录。

这是我的配置:

创建用户:

use database
db.createUser({user: "username", pwd: "password", roles: [{role: "readWrite", db: "database"}]});

码头工人-compose.yml

mongo:
  container_name: container
  image: mongo:latest
  env_file: .env
  entrypoint:
    MONGO_INITDB_ROOT_USERNAME: ${MONGODB_AUTH_USER}
    MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_AUTH_PASS}

但是尝试运行docker-compose up命令时出现以下错误:

ERROR: for 177f1a769910_smartcap-mongodb  Cannot start service mongo: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"MONGO_INITDB_ROOT_USERNAME:username\": executable file not found in $PATH": unknown

我怎么解决这个问题?你可以帮帮我吗?

标签: mongodbdockerdocker-compose

解决方案


更改entrypointenvironment,如下所示:

mongo:
  container_name: container
  image: mongo:latest
  environment:
    MONGO_INITDB_ROOT_USERNAME: ${MONGODB_AUTH_USER}
    MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_AUTH_PASS}

推荐阅读