autobuild 문제 해결
autobuild 문제 해결 (Troubleshoot your autobuilds)
빌드 실패와 비공개 하위 모듈이 연결된 저장소 빌드 문제를 해결하는 방법을 배워볼게요.
출처: 문서
본문
경고: Docker Hub Automated Builds는 더 이상 사용되지 않는(deprecated) 기능이에요. 2027년 4월 1일에 완전히 퇴역할 예정이에요. 지원되는 CI/CD 워크플로우로 이동하려면 마이그레이션 가이드를 확인해요.
참고: 자동 빌드에는 Docker Pro, Team, Business 구독이 필요해요.
빌드 실패
빌드가 실패하면 General 탭과 Builds 탭의 빌드 보고서 줄 옆에 Retry 아이콘이 나타나요. Build report 페이지와 Timeline 로그에도 Retry 버튼이 표시돼요.
참고: 조직에 속한 저장소의 빌드 세부 정보를 보는 경우, 저장소에 Read & Write 접근 권한이 있을 때만 Cancel과 Retry 버튼이 나타나요.
자동 빌드에는 4시간의 실행 시간 제한이 있어요. 빌드가 이 시간 제한에 도달하면 자동으로 취소되고, 빌드 로그에 다음 메시지가 표시돼요:
2022-11-02T17:42:27Z The build was cancelled or exceeded the maximum execution time.
이 로그 메시지는 빌드를 직접 취소할 때와 동일해요. 빌드가 자동으로 취소되었는지 확인하려면 빌드 기간(duration)을 확인해요.
비공개 하위 모듈이 연결된 저장소 빌드
Docker Hub는 소스 코드 저장소에 배포 키(deploy key)를 설정해서 그 저장소를 클론하고 빌드할 수 있게 해줘요. 이 키는 단일 특정 코드 저장소에서만 작동해요. 소스 코드 저장소가 비공개 Git 하위 모듈을 사용하거나, 빌드하기 위해 다른 비공개 저장소를 클론해야 하는 경우, Docker Hub는 이러한 추가 저장소에 접근할 수 없어요. 그러면 빌드가 완료되지 않고 빌드 타임라인에 오류가 기록돼요.
이 문제를 해결하려면 SSH_PRIVATE 환경 변수를 사용해 배포 키를 오버라이드하고 Docker Hub 빌드 시스템에 저장소 접근 권한을 부여하도록 자동 빌드를 설정할 수 있어요.
참고: 팀에 autobuild를 사용한다면 대신 아래 절차를 사용하고 소스 코드 제공자에 서비스 사용자를 구성해요. 개인 계정에서도 이 작업을 수행해 Docker Hub의 소스 저장소 접근을 제한할 수 있어요.
- 빌드 전용으로 사용하는 SSH 키 쌍을 생성하고 공개 키를 소스 코드 제공자 계정에 추가해요. 이 단계는 선택 사항이지만, 다른 접근을 제거하지 않고 빌드 전용 키 쌍을 철회할 수 있게 해줘요.
- 키 쌍의 개인 키 절반을 클립보드에 복사해요.
- Docker Hub에서 비공개 하위 모듈이 연결된 저장소의 빌드 페이지로 이동해요. (필요하다면 여기 의 단계를 따라 자동 빌드를 구성해요.)
- 화면 하단에서 Build Environment variables 옆의 더하기 아이콘을 선택해요.
- 새 환경 변수의 이름으로
SSH_PRIVATE을 입력해요. - Value 필드에 키 쌍의 개인 키 절반을 붙여넣어요.
- Save 를 선택하거나, 빌드가 이제 완료되는지 검증하려면 Save and Build 를 선택해요.
참고: 비공개 git 하위 모듈은 HTTPS가 아니라 SSH를 통한 git clone(
[email protected]:some-submodule.git)으로 구성해야 해요.