[CI/CD] NCP와 Gitlab의 Container Registry를 통해 gitlab-ci를 사용해보자. -1(Container Registry)

Junseo Jung·2024년 5월 4일

NCP+GitLab

목록 보기
1/3
post-thumbnail

Private Registry란?

많이들 docker hub를 통해 이미지를 올리고 해당 이미지를 통해 배포한다. private 이미지에 제한이 있는 docker hub를 사용하기 보단 Registry를 사용하고자 했다.

Private Registry, Container Registry로 말할 수 있는 Private Registry는 나만의 docker hub와 비슷하다.

Private Registry의 선택

  1. NCP Container Registry

    NAVER CLOUD PLATFORM

    Object Storage를 사용해야 해서 패스~

  2. 서버에 직접 Container Registry 구축

    배포할 서버 또는 내가 원하는 위치에 직접 Container Registry를 구축할 수 있다.

    docker image pull registry
    docker run -d -p 5000:5000 --name registry registry

    원하는 곳에서 이렇게 설정한뒤 해당 주소의 5000번 포트로 접속 docker push를 통해 사용 가능하다.

    하지만 대부분의 클라우드 서비스는 각자의 Container Registry를 지원하고 이를 사용하고자 한다.

  3. gitlab Container Registry

    GitLab 컨테이너 레지스트리 | GitLab 공식 기술 문서 한글판 by 인포그랩 | 인포그랩 | GitLab 기반 DevSecOps 구축,컨설팅,교육,CICD Pipeline,기술 지원 서비스 제공

    Gitlab을 통해 협업을 진행하고 있으며 문서가 친절히 구성되어 있어 Gitlab의 Container Registry를 사용하기로 했다.

Gitlab Container Registry

각 Repository에 Deploy/Container Registry로 이동하면 현재 Container Registry를 확인할 수 있다.

Gitlab Login

여기서 docker login을 진행해야 한다. CLI에서 진행한다면 ID/PW를 통해 로그인 하면 되지만 gitlab-ci를 통해야 하므로 다른 로그인 방법을 하고자 한다.

Authenticate with the container registry | GitLab

로그인 방법은 4가지가 있다.

  1. Personal access token.
  2. Deploy token.
  3. Project access token.
  4. Group access token.

이 중 Deploy token을 사용하여 로그인을 진행하였다.

Deploy tokens | GitLab

원하는 Repository로 이동하여 Settings/Repository/Deploy tokens로 이동 Expand 후 add Token을 통해 Deploy Token을 발급한다.

성공하게 되면 아래와 같이 나온다.

이렇게 나온 username과 password는 Gitlab CI/CD Variables에 저장한다. registry주소의 경우 위에 나왔던 Gitlab Container Register주소로 registry.gitlab.com/사용자명/리포지토리명과 같은 형식이다.

이렇게 저장한 값을 사용하여 docker login을 진행할 수 있다.

docker login -u $REGISTRY_USER -p $REGISTRY_PASSWORD $REGISTRY

로컬에서 로그인 할때는 그냥 해도 된다.

docker login registry.gitlab.com

0개의 댓글