我的码头工人遇到了问题。 我有自己的SonarQube 3.6.2图像,其中包含一些自定义规则。 我试着将它放在容器中,但如果我在尝试启动容器时运行SonarQube,那么我的容器会一次又一次地重新启动。
我只是尝试了我的每一个想法:ENTRYPOINT["/sonarQube362/bin/linux-x86-64/sonar.sh", "start"]
(两种形式:ENTRYPOINT /sonarQube362/bin/linux-x86-64/sonar.sh start
和CMD
),#!/bin/bash
set -e
#nohup /sonarQube362/bin/linux-x86-64/sonar.sh start
exec /sonarQube362/bin/linux-x86-64/sonar.sh start
(两种形式),使用第三方运行.sh里面有这些命令行:
Sonar is restarted
我的容器上始终有“重新启动”状态,日志只会再次抱怨CMD top
,然后又一次......
例如,如果我的Dockerfile以docker exec -ti container bash
结尾,那么我可以CMD
进入它并成功运行上述任何命令。
当你设置为ENTRYPOINT
或 In [1]: import maintenance
In [2]: a = maintenance.A()
In [3]: a()
Out[3]: Stopping A
Executing the common task
Cleaning logs
In [4]: b = maintenance.B()
In [5]: b()
Out[5]: Stopping B
Executing the common task
SonarQube / Docker循环重启时,你们有没有想过为什么?
干杯,
答案 0 :(得分: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"
当然,您可以在构建Docker镜像时使用awk
或sed
,但这是另一个主题......
希望这有帮助, 干杯, 奥利弗