RUNі ENTRYPOINTє двома різними способами виконання сценарію.
RUNозначає, що він створює проміжний контейнер, запускає сценарій і заморожує новий стан цього контейнера в новому проміжному зображенні. Після цього сценарій не запускатиметься: ваше остаточне зображення має відображати результат цього сценарію.
ENTRYPOINT означає, що ваше зображення (яке ще не виконало сценарій) створить контейнер і запустить цей сценарій.
В обох випадках слід додати сценарій, і RUN chmod +x /bootstrap.shце гарна ідея.
Це також повинно починатися з шебанга (типу #!/bin/sh)
Беручи до уваги ваш сценарій ( bootstarp.sh: кілька git config --globalкоманд), було б краще, щоб RUNцей сценарій один раз був у вашому Dockerfile, але обов’язково використовував правильного користувача (глобальний git configфайл %HOME%/.gitconfig, який за замовчуванням є /rootодним)
Додайте до свого файлу Docker:
RUN /bootstart.sh
Потім під час запуску контейнера перевірте вміст, /root/.gitconfigщоб підтвердити запуск сценарію.
bootstarp.shвстановлений виконуваний біт?