2016-05-31 6 views
0

Ich habe ein Problem mit meinem Docker. Ich habe mein eigenes Bild von SonarQube 3.6.2, das ein paar benutzerdefinierte Regeln enthält. Ich habe versucht, es in einen Container zu legen, aber wenn ich SonarQube starte, während ich versuche, meinen Container zu starten, läuft mein Container immer wieder neu.Docker startet wieder und agin

Ich habe gerade versucht, jede einzelne Idee, die ich hatte: ENTRYPOINT (beide Formen: ENTRYPOINT["/sonarQube362/bin/linux-x86-64/sonar.sh", "start"] und ENTRYPOINT /sonarQube362/bin/linux-x86-64/sonar.sh start), CMD (beide Formen), eine dritte Partei run.sh mit diesen Befehlszeilen innen mit:

#!/bin/bash 
set -e 

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

ich habe immer den „Neustart“ Status auf meinem Behälter und die Protokolle beschwert sich einfach, dass Sonar is restarted, wieder und wieder und wieder ...

Wenn mein Dockerfile mit CMD top zum Beispiel endet, dann kann ich docker exec -ti container bash hinein und laufen irgendeinen der obigen Befehle erfolgreich.

Haben Sie eine Ahnung, warum, wenn als CMD oder ENTRYPOINT SonarQube/Docker Schleifen neu gestartet?

Prost,

+0

Was zeigt 'DOCKER CONTAINER_NAME'? – jwodder

+0

Beachten Sie, dass 3.6.2 eine alte Version ist. 4.5.6 ist die aktuelle LTS-Version, und 5.6, das nächste LTS, steht kurz vor der Veröffentlichung. –

+0

@jwodder: Es läuft einfach auf "SonarQube startet ... SonarQube gestartet" – Olivier

Antwort

0

OK. Ich habe gerade die Lösung gefunden.

Ich aktualisierte das Skript sonar.sh, um die COMMAND_LINE zu ändern. Früher habe ich den Wrapper gedämmt, ich habe das geändert, um den Wrapper NICHT zu dämonisieren. So Docker Spur davon halten ...

Aus Gründen der Klarheit, hier ist die Zeile: Vorher:

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

Nach:

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

Natürlich können Sie dies mit awk oder sed, während das Bild Docker bauen, aber das ist ein anderes Thema ...

hoffe, das hilft, Cheers, Olivier

Verwandte Themen