Estoy creando una imagen de MongoDB configurable de forma no interactiva para Docker, con el objetivo actual de poder cargar usuarios de autenticación desde un archivo de configuración mediante programación. Mi problema actual es que, aunque puedo agregar usuarios a la base de datos con éxito, parece que no persisten durante el proceso de compilación y, como tal, mi contenedor de nodos no puede autenticarse con éxito en la base de datos.
Aquí está el dockerfile principal para mi instancia de mongodb:
FROM mongo:latest #Installing Node RUN apt-get update && \ apt-get install -y curl && \ curl -sL https://deb.nodesource.com/setup_6.x | bash - && \ apt-get install -y nodejs #Setting Up Mongo WORKDIR /var/www/smq COPY ./docker/mongo-setup.js mongo-setup.js COPY ./.config/mongo /var/www/.config/mongo RUN if [ -e /var/www/.config/mongo/mongod.conf ] ; then cp /var/www/.config/mongo/mongod.conf /etc/mongod.conf ; fi RUN mongod --port 27017 & node mongo-setup.js && mongod --shutdown CMD ["mongod", "--auth", "--port", "27017"]Mi configuración también se basa en docker-compose:
mongodb: build: context: ../ dockerfile: ./docker/mongodb-dockerfile container_name: mongo_container volumes: - /data/db En el paso RUN mongod --port 27017 & node mongo-setup.js && mongod --shutdown , obtengo la impresión que muestra la creación exitosa de usuarios a través del shell mongo. Sin embargo, cuando los dos contenedores acoplables (mongo y nodo) están conectados, aparece el siguiente error de mongod:
2017-01-02T20:43:14.895+0000 I ACCESS [conn1] Error de autenticación SCRAM-SHA-1 para mydbuser en mydb del cliente 172.20.0.3:49762; UserNotFound: no se pudo encontrar el usuario mydbuser@mydb
¿Cómo puedo resolver este problema?
En última instancia, este es un esfuerzo para abrir el código de mi configuración, por lo tanto, puede reproducir el paso extrayendo este repositorio de github (actualmente, dicha configuración se encuentra en /node-mongo en la rama node-mongo ). ¡Salud!