discourse_docker의 얕은 git fetch 회귀 문제

맞습니다. 그 시점에는 버전을 알 수 없으며, 기본 이미지가 현재 버전 + 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 pull`이 호출되면 **전체 저장소가 가져와지며**, 이전에 얕은 클론(shallow clone)만 수행되었기 때문에 몇 분 정도 걸릴 수 있습니다. 로컬에서 위의 지시문만 실행해 보면 확인할 수 있습니다. 기본 이미지에 전체 저장소가 있는 것이 더 좋다고 주장하는 것은 아니지만, `web.template.yml`의 코드는 플러그인만 추가되었거나 `app.yml`의 설정만 변경된 경우에도 모든 리빌드 시마다 실행됩니다. 저는 (discourse가 아닌) 제 프로젝트에서 보통 새 버전마다 새 이미지를 생성하는 방식을 사용하지만, 이것이 여러분에게는 실현 가능하지 않을 수 있습니다(현재 여러분이 어떻게 처리하고 있는지 고려해 볼 때). 리빌드 시간이 증가하는 것을 느끼셨나요? (또는 대부분의 경우 전체 리빌드 시간에 비해 그 정도가 크지 않을 수도 있습니다)

업데이트

위의 단계를 다시 테스트해 보았는데 빠졌습니다. 처음 시도할 때 git 트리를 변경하는 다른 명령어를 실행한 것 같아서, git pull을 실행했을 때 모든 것을 가져오려고 시도했던 것으로 보입니다.