Docker MongoDB:UserNotFound

我正在为Docker构build一个非交互式可configuration的MongoDB镜像,目前的目标是能够以编程方式从configuration文件加载auth用户。 我目前的问题是,尽pipe我可以成功地将用户添加到数据库,他们似乎不坚持通过构build过程,因此我的节点容器无法成功地对数据库进行身份validation。

以下是我的mongodb实例的主要dockerfile:

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"] 

我的设置还依赖于docker-compose:

  mongodb: build: context: ../ dockerfile: ./docker/mongodb-dockerfile container_name: mongo_container volumes: - /data/db 

在步骤RUN mongod --port 27017 & node mongo-setup.js && mongod --shutdown ,我得到了通过mongo shell成功创build用户的打印。 但是,当两个docker集装箱(mongo和节点)连接,我从mongod得到以下错误:

2017-01-02T20:43:14.895 + 0000 I ACCESS [conn1]对客户端mydb上mydbuser的SCRAM-SHA-1身份validation失败172.20.0.3:49762; UserNotFound:找不到用户mydbuser @ mydb

我该如何解决这个问题?

最终,这是一个努力开源我的设置,因此,您可以通过从github(目前的设置是在分支node-mongo上的/node-mongo下拉) 这个存储库重现步骤。 干杯!