首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Dockerized中初始化集合

如何在Dockerized中初始化集合
EN

Stack Overflow用户
提问于 2018-08-02 21:41:09
回答 1查看 8.2K关注 0票数 4

下面是我用来对接我的MongoDB实例的MongoDB:

代码语言:javascript
复制
version: '3.3'

services:
  mongo:
    image: 'mongo:latest'
    ports:
      - '27017:27017'
    volumes:
      - 'data-storage:/data/db'
    networks:
      mynet:

volumes:
  data-storage:

networks:
  mynet:

容器是正确创建的,并且它启动时没有任何问题。是否可以在容器第一次启动时创建一个Mongo集合并使用一些文档填充它?

例如,我想运行以下几个语句:

代码语言:javascript
复制
db.strategyitems.insert( { symbol: "chf", eval_period: 15, buy_booster: 8.0, sell_booster: 5.0, buy_lot: 0.2, sell_lot: 0.2 } )
db.strategyitems.insert( { symbol: "eur", eval_period: 15, buy_booster: 8.0, sell_booster: 5.0, buy_lot: 0.2, sell_lot: 0.2 } )
db.strategyitems.insert( { symbol: "usd", eval_period: 15, buy_booster: 8.0, sell_booster: 5.0, buy_lot: 0.2, sell_lot: 0.2 } )

..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 06:30:16

根据MongoDB码头文件,您可以使用这个组合在db : Environnement变量MONGO_INITDB_DATABASE中插入

这个变量允许您指定数据库的名称,以便在/docker initdb.d/*..js中创建脚本(请参见下面初始化一个新实例)。MongoDB基本上是为“先使用就创建”而设计的,因此如果您不使用JavaScript文件插入数据,那么就不会创建数据库。

和init .js文件在/initdb.d/

初始化新实例 当容器首次启动时,它将执行扩展名为.sh和.js的文件,这些文件位于/initdb.d中。文件将按字母顺序执行。如果存在.js文件,将使用MONGO_INITDB_DATABASE变量指定的数据库由mongo执行,或者以其他方式进行测试。您还可以在.js脚本中切换数据库。

请注意,您可以跳过设置环境变量,并在js文件中设置数据库。请参阅医生需要更多的解释。

希望能帮上忙。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51662531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档