- For godkendelsesdelen:har du prøvet at tilføje
--authenticationDatabase adminfor at kunne logge ind ? -
Angående
MONGO_INITDB_DATABASEdet vil ikke være effektivt, medmindre du har et script under/docker-entrypoint-initdb.d/som vist i docker-entrypoiny .sh der bruges i mongodb-billedet, så du kan have et bash-script idocker-entrypoint-initdb.d/med det sagt. -
Det er ikke sikkerhedsmæssigt at bruge root-brugeren som ejer af din applikation db, da det vil have mulighed for at kontrollere alt i mongodb-forekomsten.
IMHO en bedre tilgang ville være at tilføje ekstra variabler som følgende:
MONGO_APPLICATION_DATABASEMONGO_APPLICATION_USERNAMEMONGO_APPLICATION_PASSWORD
Tilføj derefter et bash-script, der vil oprette brugeren og tildele det til databasen ved hjælp af miljøvariabler (du skal montere det til docker-entrypoint-initdb.d):
# initmongo/setup.sh mongo admin -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD --eval "db.getSiblingDB('$MONGO_APPLICATION_DATABASE').createUser({user: '$MONGO_APPLICATION_USERNAME', pwd: '$MONGO_APPLICATION_PASSWORD', roles: [{role: 'readWrite', db: '$MONGO_APPLICATION_DATABASE'}]});"I docker-compose.yml tilføj en volumen til din aktuelle liste over bind
#docker-compose.yml volumes: - ".${MONGO_DATA_DIR}:${MONGO_DATA_DIR}" - "./initmongo/:/docker-entrypoint-initdb.d/"Og fjern endelig denne variabel
MONGO_INITDB_DATABASEda der ikke er behov for detBrug følgende kommando for at logge ind:
docker exec -it container_name mongo -u "$MONGO_APPLICATION_USERNAME" -p "$MONGO_APPLICATION_PASSWORD" --authenticationDatabase "$MONGO_APPLICATION_DATABASE" "$MONGO_APPLICATION_DATABASE" -
For
.envfil, jeg er ikke sikker på, hvad der kan forårsage dette problem. har du nogen advarsler, mens du bruger det? Overvej også at tjekke denne kommentar eller dette