首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令以非零退出代码终止:在Docker容器中执行错误: 137 (Mongo Manager)

命令以非零退出代码终止:在Docker容器中执行错误: 137 (Mongo Manager)
EN

Stack Overflow用户
提问于 2019-04-25 14:34:48
回答 2查看 3.3K关注 0票数 5

根据本指南:

https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/

我试图在MongoDB和MongoDB操作系统管理器中运行OpenShift。我已经忙着对MongoDB和MongoDB操作系统管理器进行对接,MongoDB正在成功运行,侦听端口27017和所有接口:

代码语言:javascript
复制
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

我还设法使MongoDB操作管理器初始化,这意味着成功完成了以下步骤(包括连接到mongodb实例):

代码语言:javascript
复制
Generating new Ops Manager private key...
Starting pre-flight checks
Successfully finished pre-flight checks

Migrate Ops Manager data
   Running migrations...[  OK  ]
Start Ops Manager server
   Instance 0 starting..................[  OK  ]
tput: No value for $TERM and no -T specified
Starting pre-flight checks
Successfully finished pre-flight checks

Start Backup Daemon...[  OK  ]

但后来突然失败了:

代码语言:javascript
复制
tail -f /opt/mongodb/mms/logs/mms0.log
...
2019-04-25T14:30:42.616+0000 [main] INFO  com.xgen.svc.mms.svc.ping.PingRequest$Observable [Observable.java.addObserver:19] - Registering observer: class com.xgen.svc.mms.svc.ping.TotalStorageCacheSvc
2019-04-25T14:30:42.618+0000 [main] INFO  com.xgen.svc.mms.svc.ping.PingRequest$Observable [Observable.java.addObserver:19] - Registering observer: class com.xgen.svc.mms.svc.ping.NDSAutoScalingIngestionSvc
2019-04-25T14:31:00.536+0000 [main] INFO  com.xgen.svc.core.ServerMain [ServerMain.java.setUpProxyServer:620] - Started queryable backup proxy server on port 25999
2019-04-25T14:31:00.537+0000 [ProxyServer-25999] INFO  backup.jobs.queryable.ProxyServer.25999 [ProxyServer.java.run:96] - Waiting for Proxy Server PEM File to be specified in the configuration
2019-04-25T14:31:00.559+0000 [main] INFO  com.xgen.svc.core.ServerMain [ServerMain.java.start:537] - Started mms at build ed64653d5f@on-prem-4.0 in: 51476 (ms)
command terminated with non-zero exit code: Error executing in Docker Container: 137

在启用了调试级别的附加日志记录之后:

代码语言:javascript
复制
2019-04-27T13:46:35.035+0000 [job-consumer-214366356] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Sending command {findandmodify : BsonString{value='data.jobsProcessor'}} to database mmsdbjobs on connection [connectionId{localValue:13, serverValue:31}] to server mongo-db:27017
2019-04-27T13:46:35.036+0000 [job-consumer-214366356] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Command execution completed
2019-04-27T13:46:35.476+0000 [mms_QuartzSchedulerThread] DEBUG org.quartz.simpl.PropertySettingJobFactory [SimpleJobFactory.java.newJob:51] - Producing instance of Job 'DEFAULT.dbRollupSchedulerJob', class=com.xgen.svc.core.svc.cron.SimpleJob
2019-04-27T13:46:35.477+0000 [mms_QuartzSchedulerThread] DEBUG org.quartz.core.QuartzSchedulerThread [QuartzSchedulerThread.java.run:291] - batch acquisition of 1 triggers
2019-04-27T13:46:35.477+0000 [mms_Worker-31] DEBUG org.quartz.core.JobRunShell [JobRunShell.java.run:201] - Calling execute on job DEFAULT.dbRollupSchedulerJob
2019-04-27T13:46:35.478+0000 [mms_Worker-31] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Sending command {count : BsonString{value='config.customers'}} todatabase mmsdbconfig on connection [connectionId{localValue:13, serverValue:31}] to server mongo-db:27017
2019-04-27T13:46:35.480+0000 [mms_Worker-31] DEBUG org.mongodb.driver.protocol.command [SLF4JLogger.java.debug:56] - Command execution completed
2019-04-27T13:46:35.481+0000 [mms_Worker-31] DEBUG com.xgen.svc.core.svc.cron.CronJob [CronJob.java.canProceed:47] - Not proceeding with CronJob dbRollupScheduler. No Projects.
command terminated with non-zero exit code: Error executing in Docker Container: 137

但对导致码头集装箱终止的原因没有多大帮助。

有什么原因吗?

注意,当我在本地的ubuntu盒(有8GB RAM的机器)上使用普通的对接器时,它工作得很好。

编辑:

根据以下建议,我还尝试在Mongo Manager的部署配置中设置以下资源:

代码语言:javascript
复制
  kind: DeploymentConfig
  metadata:
    name: ${NAME}
  spec:
    replicas: 1
    selector:
      app: ${NAME}
    strategy:
      type: Recreate  
          ...
        containers:
        - name: ${NAME}
          image: ${IMAGE}
          ports:
           - containerPort: 8080
          resources:
            limits:
              cpu: 8
              memory: 15Gi
            requests:
              cpu: 8
              memory: 15Gi

但结果还是一样。

和Dockerfile

代码语言:javascript
复制
FROM centos:latest
RUN yum update -y && \
    yum install -y openssl iproute nano net-tools    

COPY run.sh /
RUN chmod 750 /run.sh

ENTRYPOINT ["/run.sh"]

run.sh是:

代码语言:javascript
复制
#!/bin/bash
export TERM="xterm"

curl -k https://downloads.mongodb.com/on-prem-mms/rpm/mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm -o tmp/mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm

cd /tmp \
    && rpm -ivh mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm \
    && rm mongodb-mms-4.0.10.50461.20190403T1841Z-1.x86_64.rpm

cp /opt/configmap/conf-mms/conf-mms.properties /opt/mongodb/mms/conf/
cp /opt/configmap/mms/mms.conf /opt/mongodb/mms/conf/
cp /opt/configmap/logback/logback.xml /opt/mongodb/mms/conf/
chown -R mongodb-mms:mongodb-mms /opt/mongodb/mms/
/bin/bash /opt/mongodb/mms/bin/mongodb-mms start

其中/opt/configmap中的文件是从configmap挂载的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-05 09:16:45

由于尚未就如何在OpenShift中成功地对接和部署Mongo管理器编写建议/答案,因此,执行普通的非容器安装似乎是到目前为止唯一的解决方案,例如:

https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/

票数 1
EN

Stack Overflow用户

发布于 2019-04-28 19:42:35

我认为你最好跟着文档到安装MongoDB操作符,然后是通过Kubernetes安装MongoDB

这是在OpenShift中安装更现代和更好的方法。这应该能解决你问题中概述的大部分复杂性。

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

https://stackoverflow.com/questions/55851842

复制
相关文章

相似问题

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