我使用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)
我做错了什么?