Вы правы, в тот момент мы не знаем версию. Похоже, базовый образ использует текущую версию + ветку tests-passed, хотя в ветке будет тот коммит, который был на момент сборки образа.
Не приводит ли текущий подход к более медленным пересборкам, даже при использовании ветки tests-passed?
Просто рассмотрите следующие инструкции:
В базовом образе:
git clone --depth 1 https://github.com/discourse/discourse.git
cd discourse/
git remote set-branches --add origin tests-passed
В web.template.yml
git reset --hard
git clean -f
git remote set-branches --add origin master
git pull
...
Обновление
Я снова протестировал описанные выше шаги, и они оказались быстрыми. Похоже, при первой попытке я выполнил другую команду, которая изменила дерево git, и в итоге при запуске git pull попыталось извлечь всё.