ich einige Zeit dies heute zu debuggen hatte -> weil ich eine 'offizielle' wurde mit Docker-Bild Ich hatte wenig bis keine Einsicht in das, was vor sich ging. Um dies zu beheben, habe ich das offizielle Image erweitert und meinen eigenen Einstiegspunkt aufgerufen. Die Dockerfile:
FROM officialImage:version
ENV envOne=value1 \
envTwo=value2
COPY wrapper-entrypoint.sh/
ENTRYPOINT ["/wrapper-entrypoint.sh"]
Dann habe ich eine 'set -x' im wrapper-entrypoint.sh
Skript und aufgerufen, um das Original:
#!/bin/bash
set -x
echo "Be pedantic: all args passed: [email protected]"
bash -x ./original-entrypoint.sh "[email protected]"
Daraus ich gefunden:
- Neustart ruft die Original
ENTRYPOINT
mit den ursprünglichen Argumenten. Das offizielle Bild, das ich verwendet habe, hat es bereits initialisiert und somit anders gehandelt. Aus diesem Grund war ich verwirrt über die Semantik. Mit -x
konnte ich sehen, was wirklich passiert ist.
- Ich weiß immer noch nicht, warum
docker kill
stoppt den Neustart, aber das ist, was ich sehe - zumindest auf Docker Data Center.
- Ich glaube nicht, dass Shared Data Volumes dies in irgendeiner Weise beeinflussen, SAVE für die Aktionen, die ein gegebenes
ENTRYPOINT
Skript basierend auf seiner Bedingung zum Zeitpunkt des Neustarts ausführen könnte.
So hatte ich RTFM vor der Frage - diese Antwort befasst sich überhaupt keine meiner Fragen überhaupt! Keiner dieser Links erwähnt den ENTRYPOINT für den Container. Führt es aus, welche Parameter werden übergeben? Ein Zitat von einem der Links sagt: "[Neustarts fortgesetzt unbegrenzt,] oder wenn Sie docker stoppen oder docker rm -f den Container". Wenn ich docker kill, gibt es keinen Neustart. – JoeG