목차
반응형

문제 상황
Github action으로 이미지 굽는 중에 에러 발생
"unexpected status from Post request to ghcr.io, 403 Forbidden"
빌드 앤 푸시 과정에서 발생했으며, 정황 상 빌드는 완료되었고 푸시 과정에서 발생한 오류다.


문제 원인
일반적으로 기존에 해당 프로젝트에서 내가 사용하지 않았던 패키지를 덮어쓰기 할 때 생기는 에러이다.
ex 1) 협업 환경에서 패키지 배포를 하는 경우
ex 2) 기존에 다른 레포지토리에서 사용하던 패키지명을 재사용해 배포를 시도하는 경우
발생할 수 있는 문제였다.
필자는 두 번째 예시에 해당했다.
해결 방법
1) build and push 시 explicit permission 부여
[./github/workflows/workflow-1.yml]
ruby
닫기buildImageAndPush: permissions: #403 error 해결 위한 explicit permission 추가 contents: read packages: write name: 도커 이미지 빌드와 푸시 needs: makeTagAndRelease runs-on: ubuntu-latest steps:
permissions, contents read packages write을 통해 내용을 읽고 패키지를 쓰는 외부 권한을 추가했다.
추가로 `runs-on ubuntu-latest`를 지정했다.
settings에서 Workflow permissions 확인

Read and write permissions가 허용되어 있는지 확인한다.
Packages Settings 설정

Package settings를 들어간다.

Add Repository를 통해 배포할 리포지토리를 해당 패키지에 추가한 후, Role은 write 이상을 부여한다.
Q. 리포지토리에서 한 번도 패키지를 만든 적이 없어 패키지 세팅이 없는데 403 에러가 발생합니다.
A. 이 경우에는 빌드할 패키지명을 다른 리포지토리에서 사용하고 있어 문제가 발생하고 있을 확률이 높습니다.
다른 패키지명으로 빌드 앤 푸시를 시도해 보세요.
# REFERENCE
Fixing “403 Forbidden” GitHub Actions, Docker or Helm Push to GitHub Container Registry (GHCR) - HackMD
The first time, the job will work.
hackmd.io
반응형
'DEV > Infrastructure' 카테고리의 다른 글
[NCP, 도커] 서버 생성부터 배포까지 (3 / 4) (0) | 2024.01.07 |
---|---|
[NCP, 도커] 서버 생성부터 배포까지 (2 / 4) (0) | 2024.01.02 |
[NCP, 도커] 서버 생성부터 배포까지 (1 / 4) (1) | 2024.01.02 |
[트러블슈팅][Docker] 프로젝트 빌드 시 error code 137 해결 방법 (0) | 2023.12.26 |
[Docker, Windows Home] 도커 설치 방법 정리 (0) | 2023.12.04 |