Phi*_*ert 5 mongodb docker dockerfile docker-compose
我正在为 Docker 构建一个非交互式可配置的 MongoDB 映像,目前的目标是能够以编程方式从配置文件加载身份验证用户。我目前的问题是,虽然我可以成功地将用户添加到数据库,但他们似乎不会在构建过程中持续存在,因此我的节点容器无法成功针对数据库进行身份验证。
这是我的 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"]
Run Code Online (Sandbox Code Playgroud)
我的设置还依赖于 docker-compose:
mongodb:
build:
context: ../
dockerfile: ./docker/mongodb-dockerfile
container_name: mongo_container
volumes:
- /data/db
Run Code Online (Sandbox Code Playgroud)
在步骤RUN mongod --port 27017 & node mongo-setup.js && mongod --shutdown
,我得到了显示通过 mongo shell 成功创建用户的打印。但是,当两个 docker 容器(mongo 和 node)连接时,我从 mongod 收到以下错误:
2017-01-02T20:43:14.895+0000 我从客户端 172.20.0.3:49762 访问 mydb 上的 mydbuser [conn1] SCRAM-SHA-1 身份验证失败;UserNotFound:找不到用户 mydbuser@mydb
我该如何解决这个问题?
最终,这是对我的设置开源的一种努力,因此您可以通过从 github 中提取此存储库来重现该步骤(目前所述设置/node-mongo
在分支下node-mongo
)。干杯!
归档时间: |
|
查看次数: |
1650 次 |
最近记录: |