Oracle Developer Cloud Service는 자동화된 CI/CD를 위한 빌드 파이프라인 관리를 제공하는 클라우드 서비스입니다.
이 문서에서는 지난번 신기능에서 소개해 드린 여려가지 Builder 중에서 Docker Builder에 대해 좀 더 상세히 알아보려고 합니다.

Developer Cloud의 Docker Builder를 사용하면 로컬 환경에 Docker 환경을 구성할 필요 없이 Developer Cloud가 제공하는 환경 하에서 Docker Image를 빌드하고 Oracle Cloud Infrastructure Registry (OCIR)을 포함한 Docker Registry에 빌드한 이미지를 Push할 수 있습니다.

Oracle Container Infrastructure Registry에 Repository 생성하기

Docker Registry로 Oracle Cloud Infrastructure Registry(이하 OCIR)를 사용하기 위해서는 Oracle Cloud Infrastructure(이하 OCI) 콘솔로 로그인 하여 Registry를 생성하여야 합니다. OCIR 메뉴는 아래와 같이 접근 합니다. OCIR 메뉴

Create Repository 버튼을 클릭하여 새로운 Repository를 하나 생성합니다. Create Repository

Create Repository

새로운 빈 Repository가 생성되었습니다. 이 Repository에 앞으로 Developer Cloud를 통해 빌드한 이미지를 Push할 것입니다. New Repository

Oracle Container Infrastructure Registry 등록하기

Developer Cloud에서 OCIR을 Docker Registry로 등록하기 위해서는 OCI의 사용자 Token이 필요합니다. OCI의 사용자 Token은 다음과정을 통해 얻을 수 있습니다. 우측의 사용자 아이콘을 클릭하여 User Settings 메뉴를 클릭합니다.

User Settings

좌측 메뉴의 Auth Token 메뉴를 클릭하고 Generate Token 버튼을 클릭하여 접속을 위한 Token을 새롭게 생성합니다.

Token

Generate Token 버튼 클릭 후 다음 창에 나오는 GENERATED TOKEN을 다음 사용을 위해 복사해 둡니다. Token

OCIR 등록을 위해 Developer Cloud 콘솔로 이동합니다. 좌측 메뉴에서 Docker Registry를 선택하고 Link External Registry 버튼을 클릭하여 OCIR에서 새롭게 생성한 레지스트리를 등록합니다. Alt text

Registry URL은 사용하는 데이터 센터 위치에 따라 다음 규칙에 맞게 입력합니다.

  • <region-code>.ocir.io
  • Frankfurt : fra
  • Ashburn : iad
  • London : lhr
  • Phoenix : phx

Alt text

Basic Authentication 옵션을 선택하고 ID는 tenancy_name/username 형태로 입력 Password는 위 과정에서 생성해둔 Auth Token을 입력합니다.

Registry가 등록되었고 OCIR에서 생성한 Registry가 보일 것입니다. Alt text

VM Template 구성하기

Developer Cloud에서 Build를 구성할 때 각 Build 환경마다 서로 다른 Software Package들을 필요로 할 수 있기 때문에, 각자의 Build 내용에 따라 필요한 Software 군들을 가지는 VM Template을 생성해야 합니다. 여기서는 Docker 빌드를 구성할 것이 때문에 Docker가 설치되어 있는 VM이 필요하게 됩니다. 이 빌드에 사용하는 VM을 구성하기 위해서 Developer Cloud의 Organization 메뉴로 이동합니다. Username 아이콘을 클릭하면 다음과 같이 Organization으로 이동하는 메뉴가 보이게 됩니다. Alt text

New Templates 버튼을 클릭하여 새로운 탬플릿을 생성합니다 Alt text

원하는 이름과 원하는 OS 버전을 선택합니다. Alt text

Configure Software 버튼을 클릭하여 원하는 Software들을 선택합니다.

Alt text

VM Template이 구성되었으면 그 Template을 사용하는 VM을 생성하여야 합니다. Virtual Machine 메뉴로 이동하여 New VM 버튼을 클릭하여 새로운 VM을 생성합니다. 이 VM은 Build가 수행중일때만 구동되고 Build가 완료되면 자동으로 정지 됩니다. Alt text

빌드에 사용할 VM이 잘 생성된 것을 확인 합니다. Alt text

Build 구성하기

이 문서에서는 Developer Cloud 서비스 인스턴스 생성 및 Code Repository 설정에 대해서는 다루지 않습니다. Developer Cloud 인스턴스 생성 및 접속, 신규 프로젝트 생성 방법은 다음을 참고합니다.

Code Repository에 Docker Build에 사용할 소스코드와 Dockerfile이 있어야 합니다.

Alt text

이제 Build를 구성해 보겠습니다. Build 메뉴에서 New Job 버튼을 클릭하여 새로운 Build Job을 생성합니다. Alt text

Build 구성에서 다른 항목들의 설명은 생략하고 Docker Build와 관련된 내용만 살펴보겠습니다. 이전 문서에서 Developer Cloud에 새롭게 추가된 Builder들에 대해서 소개했었습니다. 이 Builder들 중 Docker Builder만 살펴보면 다음과 같습니다. Alt text

이 Build Job에서는 Docker Image를 빌드하고 OCIR의 Registry에 빌드된 Image를 Push할 것이 때문에 Build Step을 다음과 같이 구성합니다. Docker Build Step에서 Image Name은 OCIR에서 생성한 Registry에 Push할 것이기 때문에 다음 규칙으로 적어 줍니다.

  • Image Name : tenancy-name/registry-name

Alt text

OCIR에 로그인하기 위하여 Docker Login Step에 OCIR 접속 정보를 다음과 같이 적어 줍니다. Registry Host는 위에서 설명한 Region 별 접근 방법을 따릅니다.

Alt text

빌드된 Docker Image를 OCIR Registry에 Push하기 위해 Docker Push Step을 추가합니다. Image Name은 위 Docker Build Step에서 사용한 Image Name을 참고하면 되고 이 이름에 따라 Full Image Name이 자동 완성됩니다. Alt text 빌드가 구성되었으면 구성을 저장하고 Build Now를 클릭하여 Build Job을 수행합니다. 빌드가 Queuing 되고 정상적으로 수행이 되고 나면 빌드된 Docker Image가 OCIR Registry에 Push되어 있을 것입니다.

Alt text

빌드가 성공하였으므로 Developer Cloud 서비스의 Docker Registry에서 Push된 이미지 정보를 확인할 수 있습니다.

Alt text

OCIR의 Registry 화면에서 확인하면 다음과 같습니다. Alt text

여기까지 Developer Cloud 사용하여 로컬의 개발자 환경에 별도의 Docker를 구성할 필요없이 Cloud 상에서 Docker Image를 빌드하고 바로 OCIR로 빌드된 이미지를 Push하는 방법에 대해 알아보았습니다.

참고 자료