RUN
i ENTRYPOINT
są dwoma różnymi sposobami wykonania skryptu.
RUN
oznacza, że tworzy kontener pośredni, uruchamia skrypt i zamraża nowy stan tego kontenera w nowym obrazie pośrednim. Po tym skrypt nie zostanie uruchomiony: ostateczny obraz powinien odzwierciedlać wynik tego skryptu.
ENTRYPOINT
oznacza, że obraz (który jeszcze nie wykonał skryptu) utworzy kontener i uruchomi ten skrypt.
W obu przypadkach należy dodać skrypt i RUN chmod +x /bootstrap.sh
jest to dobry pomysł.
Powinien również zaczynać się od shebang (jak #!/bin/sh
)
Biorąc pod uwagę twój skrypt ( bootstarp.sh
: kilka git config --global
poleceń), najlepiej by było, gdyby RUN
ten skrypt był raz w twoim Dockerfile
, ale upewnij się, że używasz właściwego użytkownika ( git config
plik globalny to %HOME%/.gitconfig
, który domyślnie jest tym /root
)
Dodaj do swojego Dockerfile:
RUN /bootstart.sh
Następnie podczas uruchamiania kontenera sprawdź zawartość, /root/.gitconfig
aby upewnić się, że skrypt został uruchomiony.
bootstarp.sh
jest ustawiony bit wykonywalny?