sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB og Docker via docker-compose godkendelsesfejl og ikke initialisering af db

  • For godkendelsesdelen:har du prøvet at tilføje --authenticationDatabase admin for at kunne logge ind ?
  • Angående MONGO_INITDB_DATABASE det 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 i docker-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_DATABASE
    • MONGO_APPLICATION_USERNAME
    • MONGO_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_DATABASE da der ikke er behov for det

    Brug 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 .env fil, 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




  1. MongoConnectionException - Kunne ikke oprette forbindelse til:localhost:27017

  2. Automatisering af MongoDB med SaltStack

  3. Hvordan kan jeg i ReactiveMongo 0.18.8 udføre en opdatering af flere dokumenter med forskellige værdier i en enkelt kommando?

  4. Kopier/klon en database i MongoDB