안녕하세요,
저는 공식 discourse_docker 설정을 사용하여 Ubuntu에서 표준 셀프호스트드 Discourse를 실행하고 있습니다.
환경
- Ubuntu Server
- Docker
- 공식
discourse_docker - 단일 컨테이너 설치 (
app.yml) - 다음 명령을 사용하여 재빌드 수행:
cd /var/discourse
./launcher rebuild app
문제
Discourse가 GitHub에서 애플리케이션 소스를 업데이트하려고 할 때 재빌드 프로세스가 부트스트랩 단계에서 실패합니다.
실패는 다음 단계에서 발생합니다:
git fetch --tags --prune-tags --prune --force origin
그리고 다음과 같은 오류를 생성합니다:
fatal: unable to access 'https://github.com/discourse/discourse.git/': SSL connection timeout
그 후 다음과 같은 메시지가 표시됩니다:
FAILED
bootstrap failed with exit code 128
주요 발견 사항
GitHub는 HTTPS를 통해 접근 가능합니다
호스트 시스템에서:
curl -I https://github.com
은 정상적으로 작동합니다.
또한:
curl -I https://raw.githubusercontent.com
역시 정상적으로 작동합니다.
제 환경에서 HTTPS를 통한 Git은 불안정합니다
Discourse 환경 내부에서:
git ls-remote https://github.com/discourse/discourse.git
은 다음과 같은 오류로 실패합니다:
SSL connection timeout
제 조사 결과, 이는 인터넷 제공업체의 GitHub HTTPS 연결 문제 때문으로 보입니다. 현재 저는 그 네트워크 문제 자체를 해결하는 데 집중하지 않고 있습니다. 대신, 제 환경에서 SSH를 통한 GitHub 연결이 정상적으로 작동하므로 SSH를 사용하여 Discourse 재빌드를 수행하는 방법을 찾고 있습니다.
GitHub SSH 인증은 작동합니다
새로운 SSH 키를 생성하고 GitHub에 추가한 후 인증을 확인했습니다:
ssh -T git@github.com
은 다음과 같은 결과를 반환합니다:
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
또한:
git ls-remote git@github.com:discourse/discourse.git
은 호스트 시스템에서 성공적으로 작동합니다.
저장소 URL
호스트 시스템에서 /var/discourse를 SSH로 변경했습니다:
origin git@github.com:discourse/discourse_docker.git
그리고 Git 작업이 정상적으로 수행됩니다.
그러나 Discourse 애플리케이션 컨테이너 내부에서:
cd /var/www/discourse
git remote -v
을 실행하면 다음과 같이 표시됩니다:
origin https://github.com/discourse/discourse.git
즉, 부트스트랩 중에 Discourse는 여전히 HTTPS를 사용하려고 합니다.
달성하고자 하는 목표
제 주요 목표는 GitHub HTTPS 연결이 불안정하거나 자주 타임아웃되는 환경에서 Discourse 재빌드가 안정적으로 수행되도록 하는 것입니다.
다음 사항에 대해 알고 싶습니다:
- Discourse의 부트스트랩 및 재빌드가 HTTPS 대신 SSH를 통해 GitHub를 사용하도록 하는 공식적으로 지원되는 방법이 있습니까?
- 만약 없다면, Git HTTPS가 불안정하지만 SSH는 정상적으로 작동하는 환경에 대한 권장 접근 방식은 무엇입니까?
- 부트스트랩/빌드 단계에 SSH 자격 증명을 주입하는 지원되는 방법이 있습니까?
discourse_docker를 구성하여 Discourse 소스 업데이트를 SSH를 통해 가져오는 데 성공한 사례가 있습니까?
미래 업그레이드에도 유지되는 솔루션을 선호하지만, 부트스트랩 중 SSH 기반 가져오기가 기술적으로 지원되는지에 대한 이해도 중요합니다.
어떤 지침도 크게 감사하겠습니다.
감사합니다.