위 정보에 대해 감사드립니다.
우리는 Kubernetes 클러스터에서 Discourse를 실행하기를 원하며, CI/CD 워크플로우에서 이미지를 빌드할 수 있기를 바랍니다. 이것이 바로 커스텀 Dockerfile을 사용하는 이유입니다. 모든 환경 변수는 실행 중인 Pod에 ConfigMap과/또는 Secret을 통해 제공됩니다. 이것이 지원되지 않는 설치 방식이라는 점은 알고 있지만, 적어도 특정 버전의 Discourse에 대해 이미지를 빌드하는 지원되는 방식을 사용하여 업데이트 시점을 제어하고 싶습니다.
기존의 launcher 스크립트와 samples/web_only.yml을 살펴본 결과, Kubernetes에서는 Persistent Volume과 마운트를 통해 처리되므로 volumes와 links 섹션을 주석 처리할 수 있다고 생각합니다. 그런 다음 web_only.yml에 고정된 환경 값을 추가하고, bootstrap 명령으로 컨테이너를 빌드한 후 생성된 이미지를 우리 자신의 리포지토리에 복사할 것입니다.
Discourse 버전의 경우, Docker Hub에서 새로운 릴리스가 사용 가능한지 모니터링한 후 web.template.yml 파일의 base_image 값을 수정하면 됩니다.
이것이 올바른 방법인가요?
한 가지 더 질문이 있습니다. web.template.yml에서는 db:migrate 명령을 수행하지만, bootstrap을 실행하는 시점에는 데이터베이스에 연결되어 있지 않습니다. --skip-tags 플래그를 사용해 보았지만 더 이상 작동하지 않는 것 같습니다. Pod 시작 시 initcontainer에서 이 작업이 수행되므로 템플릿에서 해당 명령을 단순히 제거해도 될까요?