0

我的码头工人遇到了问题。我有自己的 SonarQube 3.6.2 图像,其中包括几个自定义规则。我试图把它放在一个容器中,但是如果我在尝试启动容器时运行 SonarQube,那么我的容器会不断地一次又一次地重新启动。

我只是尝试了我的每一个想法:(ENTRYPOINT两种形式:ENTRYPOINT["/sonarQube362/bin/linux-x86-64/sonar.sh", "start"]ENTRYPOINT /sonarQube362/bin/linux-x86-64/sonar.sh start),CMD(两种形式),使用第三方 run.sh 和这些命令行:

#!/bin/bash
set -e

#nohup  /sonarQube362/bin/linux-x86-64/sonar.sh start
exec /sonarQube362/bin/linux-x86-64/sonar.sh start

我的容器总是处于“重新启动”状态,日志只是抱怨Sonar is restarted,一次又一次,一次又一次......

如果我的 Dockerfile 以 example 结尾CMD top,那么我可以docker exec -ti container bash进入它并成功运行上述任何命令。

你们知道为什么,当设置为CMDENTRYPOINTSonarQube/Docker 循环重新启动时?

干杯,

4

1 回答 1

0

好的。我刚刚找到了解决方案。

我更新了sonar.sh脚本以更改 COMMAND_LINE。它用于守护包装器,我只是将其更改为不守护包装器。因此 Docker 可以跟踪它......

为了清楚起见,这里是一行: 之前:

#COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"

后:

COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=FALSE $ANCHORPROP $IGNOREPROP $LOCKPROP"

当然,您可以使用awksed在构建 Docker 映像时进行此操作,但这是另一个主题...

希望这会有所帮助,干杯,奥利维尔

于 2016-06-10T14:58:26.207 回答