RUN
und ENTRYPOINT
sind zwei verschiedene Möglichkeiten, ein Skript auszuführen.
RUN
bedeutet, dass ein Zwischencontainer erstellt, das Skript ausgeführt und der neue Status dieses Containers in einem neuen Zwischenabbild eingefroren wird. Das Skript wird danach nicht mehr ausgeführt: Ihr endgültiges Bild soll das Ergebnis dieses Skripts widerspiegeln.
ENTRYPOINT
bedeutet, dass Ihr Image (das das Skript noch nicht ausgeführt hat) einen Container erstellt und dieses Skript ausführt.
In beiden Fällen muss das Skript hinzugefügt werden, und a RUN chmod +x /bootstrap.sh
ist eine gute Idee.
Es sollte auch mit einem Shebang (wie #!/bin/sh
) beginnen
In Anbetracht Ihres Skripts ( KevinRaimbaud/docker-symfony/docker/php/bootstarp.sh
: einige git config --global
Befehle) ist es am besten, dieses Skript einmal in Ihrer Docker-Datei auszuführen, aber stellen Sie sicher, dass Sie den richtigen Benutzer verwenden (die globale Git-Konfigurationsdatei lautet% HOME% /. Gitconfig, was standardmäßig der Fall ist die / root one)
Zu Ihrer Docker-Datei hinzufügen :
RUN /bootstart.sh
Überprüfen Sie dann beim Ausführen eines Containers den Inhalt von, /root/.gitconfig
um sicherzustellen, dass das Skript ausgeführt wurde.
bootstarp.sh
das ausführbare Bit gesetzt?