Docker MongoDB:UserNotFound

时间:2017-01-02 21:13:07

标签: mongodb docker docker-compose dockerfile

我正在为Docker构建一个非交互式可配置的MongoDB映像,目前的目标是能够以编程方式从配置文件加载auth用户。我目前的问题是,虽然我可以成功地将用户添加到数据库,但它们似乎不会在构建过程中持续存在,因此我的节点容器无法成功地对数据库进行身份验证。

这是我的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成功创建用户。但是当连接两个docker容器(mongo& node)时,我从mongod得到以下错误:

  

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

如何解决此问题?

最终,这是开源我的设置的努力,因此您可以通过从github拉this repository来重现该步骤(目前所述设置位于分支/node-mongo下的node-mongo下})。干杯!

0 个答案:

没有答案