非常简单的Dockerfile:
FROM mongo:3.2.10
#create DB directory
RUN mkdir -p /data/db
EXPOSE 27017
CMD ["mongod"]当我运行容器时,我想自动创建一个名为"CBDB"的DB。我不想手动运行mongo shell,希望自动创建新的DB。
谢谢!
发布于 2016-11-12 07:20:12
您可以将mongo作为守护进程执行,并编写在入口点中执行的脚本。
https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/
作为一个简单的例子,使用这个Dockerfile和入口点:
FROM mongo:3.2.10
#create DB directory
RUN mkdir -p /data/db
EXPOSE 27017
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]在入口点中,您可以将mongo用作守护进程,并执行一个一行程序来创建数据库和集合。记住使用tail (或类似supervisord的命令)来确保容器不会被停止:
#!/bin/bash
mongod --fork --logpath /var/log/mongo.log
mongo --eval "db = db.getSiblingDB('new_db'); db.createCollection('new_collection');"
tail -f /var/log/mongo.loghttps://stackoverflow.com/questions/40556237
复制相似问题