RUNund ENTRYPOINTsind zwei verschiedene Möglichkeiten, ein Skript auszuführen.
RUNbedeutet, 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.shist 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 --globalBefehle) 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/.gitconfigum sicherzustellen, dass das Skript ausgeführt wurde.
bootstarp.shdas ausführbare Bit gesetzt?