Ответ 1
RUN
и ENTRYPOINT
- два разных способа выполнить script.
RUN
означает, что он создает промежуточный контейнер, запускает script и блокирует новое состояние этого контейнера в новом промежуточном изображении. После этого script не будет запущен: ваше окончательное изображение должно отражать результат этого script.
ENTRYPOINT
означает, что ваше изображение (которое еще не выполнило script) создаст контейнер и запустит script.
В обоих случаях необходимо добавить script, а RUN chmod +x /bootstarp.sh
- хорошая идея.
Он также должен начинаться с shebang (например, #!/bin/sh
)
Учитывая ваш script (KevinRaimbaud/docker-symfony/docker/php/bootstarp.sh
: несколько команд git config --global
), было бы лучше RUN, чтобы script один раз в вашем файле Dockerfile, но убедитесь, что вы используете нужного пользователя (глобальный конфигурационный файл git равен% HOME%/. gitconfig, который по умолчанию является корневым)
Добавьте в ваш файл Docker:
RUN /bootstart.sh
Затем при запуске контейнера проверьте содержимое /root/.gitconfig
, чтобы подтвердить выполнение script.