Я наблюдаю странное поведение, которое, как я предполагаю, является ошибкой:
На системах ARM при выполнении команды ./launcher enter app происходит загрузка образа (pull_image). Я предполагаю, что это связано со следующим кодом:
# 4. загружается образ Docker для Discourse
3 test=`$docker_path images | awk '{print $1 ":" $2 }' | grep "$image"`
2
1 # экспериментальная поддержка ARM работает с фиксированным тегом, поэтому образ всегда загружается
227 if [ -z "$test" ] || [ $arm = true ]; then
1 echo
2 echo "ВНИМАНИЕ: Мы собираемся начать загрузку базового образа Discourse"
3 echo "Этот процесс может занять от нескольких минут до часа в зависимости от скорости вашей сети"
4 echo
5 echo "Пожалуйста, будьте терпеливы"
6 echo
7
8 pull_image
9 fi
Есть ли причина выполнять pull_image при входе в Docker-контейнер, или это ошибка?
В данном случае, думаю, дело не только в этом, потому что на архитектуре Intel скрипт проверяет наличие нового образа, тогда как на ARM он всегда выполняет pull. Объясняется это тем, что на ARM всегда используется фиксированный тег. Например, сегодня в скрипте загрузчика мы видим два варианта: image="discourse/base:2.0.20240825-0027"
или image="discourse/base:aarch64"
Как видите, один из них тщательно поддерживается по мере утверждения новых образов, а другой зависит от положения тега.
Соответствующие части скрипта находятся почти трёхлетней давности. Интересно, всё ли ARM настолько экспериментален, что требует такой особой обработки?
Как оказалось, образ для Intel, который будет получен через pull, в настоящее время имеет возраст 15 дней и находится на 8-й странице списка базовых образов, тогда как образ для ARM является самым свежим и имеет возраст всего 17 часов.