用于初始化数据库的Mongodb文件未执行

时间:2020-07-28 14:52:14

标签: mongodb docker docker-compose

我使用Docker版本Docker版本19.03.8,构建afacb8b7f0和docker-compose版本1.23.1,构建b02f1306并尝试将其添加到配置mongodb中,但是遇到一些问题,我的用户名未创建,并且看起来像db not初始化,因为在docker镜像正确之后,我试图输入它并连接到db,我遇到了认证问题

2020-07-28T14:41:03.392+0000 I  ACCESS   [conn1] SASL SCRAM-SHA-1 authentication failed for symfony on symfony from client 172.19.0.1:48934 ; UserNotFound: Could not find user "symfony" for db "symfony"
2020-07-28T14:41:04.843+0000 I  NETWORK  [conn1] end connection 172.19.0.1:48934 (0 connections now open)

也许由于某些原因create-app-user.sh未执行?

version: '3'
services:
mongodb:
    image: mongo:latest
    container_name: mongodb
    hostname: mongodb
    volumes:
        - ./docker/mongodb/mongod.conf:/etc/mongod.conf
        - ./docker/mongodb/initdb.d/:/docker-entrypoint-initdb.d/
        - ./docker/mongodb/data/db/:/data/db/
        - ./docker/mongodb/data/log/:/var/log/mongodb/
        - ./docker/mongodb/home:/home/mongodb
    env_file:
        - .env
    environment:
        MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
        MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
        MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}
    ports:
        - "27017:27017"
    command: ["-f", "/etc/mongod.conf"]
    networks:
        - php

.env

# MongoDB
MONGO_URL=mongodb://mongodb:27017
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=root
MONGO_INITDB_DATABASE=symfony
MONGO_INITDB_USERNAME=symfony
MONGO_INITDB_PASSWORD=symfony
MONGO_REPLICA_SET_NAME=rs0

docker / mongodb / initdb.d / create-app-user.sh create-app-user.sh

#!/bin/bash
# https://www.stuartellis.name/articles/shell-scripting/#enabling-better-error-handling-with-set
set -Eeuo pipefail
echo 'test'
# Based on mongo/docker-entrypoint.sh
# https://github.com/docker-library/mongo/blob/master/docker-entrypoint.sh#L303
if [ "$MONGO_INITDB_USERNAME" ] && [ "$MONGO_INITDB_PASSWORD" ]; then
    "${mongo[@]}" -u "$MONGO_INITDB_ROOT_USERNAME" -p "$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase "$rootAuthDatabase" "$MONGO_INITDB_DATABASE" <<-EOJS
        db.createUser({
            user: $(_js_escape "$MONGO_INITDB_USERNAME"),
            pwd: $(_js_escape "$MONGO_INITDB_PASSWORD"),
            roles: [ { role: 'readWrite', db: $(_js_escape "$MONGO_INITDB_DATABASE") } ]
        })
    EOJS
fi

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /data/db
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
#systemLog:
#  destination: file
#  logAppend: true
#  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: enabled

我曾尝试过使用symony用户和root用户

mongo -u symfony -p symfony --authenticationDatabase symfony

2020-07-28T14:56:02.957+0000 I  NETWORK  [listener] connection accepted from 127.0.0.1:44362 #4 (1 connection now open)
2020-07-28T14:56:02.957+0000 I  NETWORK  [conn4] received client metadata from 127.0.0.1:44362 conn4: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.2.8" }, os: { type: "Linux", name: "Ubuntu", architecture: "x86_64", version: "18.04" } }
2020-07-28T14:56:02.957+0000 I  ACCESS   [conn4] Supported SASL mechanisms requested for unknown user 'symfony@symfony'
2020-07-28T14:56:02.958+0000 I  ACCESS   [conn4] SASL SCRAM-SHA-1 authentication failed for symfony on symfony from client 127.0.0.1:44362 ; UserNotFound: Could not find user "symfony" for db "symfony"
2020-07-28T14:56:02.958+0000 I  NETWORK  [conn4] end connection 127.0.0.1:44362 (0 connections now open)

mongo -u root -p root --authenticationDatabase symfony

2020-07-28T14:57:15.281+0000 I  NETWORK  [listener] connection accepted from 127.0.0.1:44364 #5 (1 connection now open)
2020-07-28T14:57:15.281+0000 I  NETWORK  [conn5] received client metadata from 127.0.0.1:44364 conn5: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.2.8" }, os: { type: "Linux", name: "Ubuntu", architecture: "x86_64", version: "18.04" } }
2020-07-28T14:57:15.282+0000 I  ACCESS   [conn5] Supported SASL mechanisms requested for unknown user 'root@symfony'
2020-07-28T14:57:15.282+0000 I  ACCESS   [conn5] SASL SCRAM-SHA-1 authentication failed for root on symfony from client 127.0.0.1:44364 ; UserNotFound: Could not find user "root" for db "symfony"
2020-07-28T14:57:15.282+0000 I  NETWORK  [conn5] end connection 127.0.0.1:44364 (0 connections now open)

我做错了什么?

0 个答案:

没有答案