docker-compose mongo unable to authenticate after initialising with custom admin password

China☆狼群 提交于 2021-02-11 12:27:36

问题


This is my docker-compose file

docker-compose.yml

version: "3.1"
services:
  mongo1:
    container_name: mongo1
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASS}
      MONGO_INITDB_DATABASE: ${MONGO_DB_NAME}
    ports:
      - 27017:27017
      - 28017:28017
    env_file:
      - .env
    volumes:
      - volume-mongo:/data/db
      - ./mongo/init-mongo-js.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro
    command: ['--auth', '--wiredTigerCacheSizeGB=1']
    networks:
      - mongo-network
  # mongo-express:
  #   container_name: mongo-express
  #   image: mongo-express
  #   restart: always
  #   ports:
  #     - '8081:8081'
  #   env_file:
  #     - .env
  #   environment:
  #     - ME_CONFIG_OPTIONS_EDITORTHEME=ambiance
  #     - ME_CONFIG_BASICAUTH_USERNAME=${MONGO_USER}
  #     - ME_CONFIG_BASICAUTH_PASSWORD=${MONGO_PASS}
  #     - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
  #     - ME_CONFIG_MONGODB_AUTH_DATABASE=admin
  #     - ME_CONFIG_MONGODB_SERVER=mongo1
  #     - ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_USER}
  #     - ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_PASS}
  #   depends_on:
  #     - mongo1
  #   networks:
  #     - mongo-network
volumes:
  volume-mongo:
    driver: local

networks:
  mongo-network:
    driver: bridge

init-mongo-js.sh

mongo <<EOF
use ${MONGO_DB_NAME}
db.createCollection("users")
db.users.insert({"name": "john"})
EOF

running docker

I have cleared my volumes, containers, networks and run this fresh

docker volume prune
docker network prune
docker container prune
docker-compose up

It says it successfully creates user

mongo1    | Successfully added user: {
mongo1    |     "user" : "MYNEWUSERNAME",
mongo1    |     "roles" : [
mongo1    |             {
mongo1    |                     "role" : "root",
mongo1    |                     "db" : "admin"
mongo1    |             }
mongo1    |     ]
mongo1    | }

When I try to login via sh, it fails

docker exec -it mongo1 mongo admin -u MYNEWUSERNAME -p password

MongoDB shell version v4.4.3 connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb Error: Authentication failed. : connect@src/mongo/shell/mongo.js:374:17 @(connect):2:6 exception: connect failed exiting with code 1

来源:https://stackoverflow.com/questions/65936051/docker-compose-mongo-unable-to-authenticate-after-initialising-with-custom-admin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!