首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在docker中运行Mongodb Ops管理器

在docker中运行Mongodb Ops管理器
EN

Stack Overflow用户
提问于 2018-07-20 11:00:54
回答 1查看 1K关注 0票数 0

我有dockerfile,它可以在容器中正确安装Mongodb和Ops管理器。之后,我使用entrypoint.sh进行设置,在脚本的末尾我放了:

代码语言:javascript
运行
复制
echo "starting mongodb"
service mongod start
echo "starting opsmgr"
service mongodb-mms start

当我运行容器时,从日志消息来看,启动操作管理器行的那行从未被执行过。

我该怎么做呢:如果mongodb是up的,那么执行service mongodb-mms start

不确定它是否在一个容器中运行多个服务,因为运维管理器需要等待mongodb正确启动。

EN

回答 1

Stack Overflow用户

发布于 2019-02-18 19:07:32

我为一个非常旧的Ops Manager版本找到了这个Dockerfile,但是它等待mongodb端口打开的方式仍然有效:https://github.com/deviantony/docker-opsmanager/blob/master/ops-manager/startup.sh

基本上,作者使用nc等待,直到标准mongod端口接受连接:

代码语言:javascript
运行
复制
echo "Waiting for MongoDB"
while true; do
    nc -q 1 database 27017 >/dev/null && break
done

现在,在调用Ops Manager时,请确保它保持在前台,因为Docker需要一个进程才能运行。

例如,您可以从service start mongodb-mms开始,然后立即运行tail,例如:

代码语言:javascript
运行
复制
echo "starting mongodb"
service mongod start

# snippet to wait for mongod to be in running state 

echo "starting opsmgr"
service mongodb-mms start

# Keep this startup script busy, if it ends, the Docker container dies.
tail -f /opt/mongodb/mms/logs/mms0.log
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51434440

复制
相关文章

相似问题

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