Regressão rasa de `git fetch` no discourse_docker

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
...
Quando `git pull` é chamado, **todo o repositório é baixado**, e pode levar vários minutos, pois apenas um clone superficial foi feito antes. Você pode tentar executar apenas as instruções acima localmente e ver. Não estou dizendo que ter todo o repositório na imagem base seja melhor, mas o código em `web.template.yml` será executado em cada rebuild, mesmo que apenas um plugin tenha sido adicionado ou uma configuração alterada em `app.yml`. O que normalmente faço em meus projetos (não Discourse) é criar uma nova imagem para cada nova versão, mas isso pode não ser viável para você (considerando como você faz atualmente). Você não percebeu algum aumento no tempo de rebuild? (ou talvez isso não seja tão grande comparado ao tempo total de rebuild na maioria dos casos)

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.

2 curtidas