2016-05-31 73 views
0

我正在面臨Docker的問題。 我有我自己的SonarQube 3.6.2圖像,其中包含一對自定義規則。 我試圖把它放在一個容器中,但是如果我在啓動容器時運行SonarQube,那麼我的容器會一直重新啓動。Docker正在重新啓動並且agin

我只是想,我有每一個想法: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與CMD top例如結束,那麼我可以docker exec -ti container bash進去並運行上面的任何命令成功。

你們有什麼想法嗎?當設置爲CMD或者ENTRYPOINT SonarQube/Docker循環重新啓動?

乾杯,

+0

什麼'docker日誌CONTAINER_NAME'顯示? – jwodder

+0

請注意,3.6.2是一個古老的版本。 4.5.6是當前的LTS版本,5.6的下一個LTS即將發佈。 –

+0

@jwodder:它只是簡單地在「SonarQube開始... SonarQube開始」循環播放「 – Olivier

回答

0

好的。我剛找到解決方案。

我更新了sonar.sh腳本以更改COMMAND_LINE。它用來守護包裝,我只是改變了不守護包裝。因此泊塢窗可以保持它的軌道......

爲了清楚起見,這裏是行: 前:

#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鏡像,但這是另一個話題...

希望這會有所幫助, 歡呼聲, 奧利維爾

相關問題