[GitLab] docker push 중 denied: requested access to the resource is denied 에러

Coastby·2022년 12월 20일
0

문제 해결

목록 보기
10/17

🚫 에러

docker push 에서 denied: requested access to the resource is denied 에러가 났다.

gitlab password를 token으로 넘겨주어도 같은 문제가 발생하였다.

⭕️ 해결

https://gitlab.com/gitlab-org/gitlab/-/issues/19211#note_707092720

위의 페이지에서 다양한 이유들이 나오는데, 현재 상황은 디폴트로 생성되는 resistry container이름과 이미지 이름이 일치하지 않아서 생기는 문제인 듯 하였다. 프로젝트 이름을 변수로 넘겨주는데 resistry repo이름은 대문자가 될 수 없어서 이를 바꾸었는데 임의로 _를 추가하였더니 생겼던 문제인 듯 하다.

위 페이지의 해결방법으로 script를 바꾸었는데 오히려 변수에 아이디와 비밀번호를 등록하지 않아서 더 좋은 것 같다. 공식 안내문서를 참고하여 수정하였다.

stages:
  - dockerbuild-push

package:
  image: docker:latest     #도커 위에서 빌드를 한다
  stage: dockerbuild-push
  services:
    - docker:dind          #도커 안에서 도커를 빌드할 때 주는 옵션
  variables:
    IMG_TAG: ${CI_REGISTRY_IMAGE}:latest #환경 변수 설정, CI_REGISTRY_IMAGE : 이미지에 사용하는 이름
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build -t $IMG_TAG .
    - docker push $IMG_TAG
  after_script:
    - docker logout
  • $CI_REGISTRY_USER
    • Container Resistry에 read-write 권한을 가지며 하나의 작업만 할 수 있는 변수이다. 이에 따른 비밀번호는 $CI_REGISTRY_PASSWORD로 자동생성된다.
  • $CI_REGISTRY_IMAGE
    • 이 프로젝트에 연결된 레지스트리 주소이다.

돌고돌아 username을 바꿀 필요가 없었다….ㅜㅜ
어차피 변수에 안 들어가는데..

profile
훈이야 화이팅

0개의 댓글