Você tem razão, naquele momento não sabemos a versão. Parece que a imagem base usa a versão atual + a branch tests-passed, embora a branch tenha o commit do momento em que a imagem foi construída.
A maneira como está sendo feita agora não resultaria em rebuilds mais lentos, mesmo quando a branch tests-passed é usada?
Basta considerar as seguintes instruções:
Na imagem base:
git clone --depth 1 https://github.com/discourse/discourse.git
cd discourse/
git remote set-branches --add origin tests-passed
Em web.template.yml
git reset --hard
git clean -f
git remote set-branches --add origin master
git pull
...
Atualização
Testei as etapas acima novamente e foram rápidas. Acho que executei outra instrução na primeira tentativa que alterou a árvore do git e acabei tentando baixar tudo ao executar git pull.