이미지 빌드하기

앞에서 이미지 빌드 시 필요한 빌드 서버 생성을 완료하였습니다. 이제 이미지 빌드를 생성해 보겠습니다.

1. 이미지 빌드 생성

1-1. 빌드 정보 입력

  1. [빌드/파이프라인] - [빌드] 항목을 선택합니다.

  2. 우측 상단의 [생성] 버튼을 클릭합니다.

[화면] 빌드 목록
  1. 빌드 정보를 입력합니다.

[화면] 빌드 생성 - 빌드 정보 입력

항목(*는 필수)
내용

이미지 명*

해당 이미지가 어떤 이미지인지 상세 작성(단, 대문자는 작성 불가)

레지스트리*

기 생성한 레지스트리를 선택

(레지스트리가 여러 개 있을 경우에는 해당되는 레지스트리 선택)

자동태그 사용 여부(택1)

이미지를 업데이트 또는 변경 시에 자동으로 태그 설정 유무

("사용/미사용"으로 나뉘며, 미사용으로 선택 시에는 태그가 고정되어 이미지가 엎어쳐질 수 있음)

태그*

생성된 이미지에 태그를 붙일 내용을 작성

(자동 태그 사용 여부에 "미사용"으로 선택할 경우 여기에 작성된 태그로 계속 사용)

자동증가 유형 (택1)

자동 태그 사용 여부에 “사용”을 설정할 경우에 "시간/순번"으로 지정할 수 있음

빌드 실행 서버 (택1)

빌드를 진행할 서버 선택

  1. 하단에 [빌드 작업 추가] 버튼을 클릭하여 빌드 시 필요한 항목들을 선택합니다.

[화면] 빌드 생성 - 빌드 작업 추가
항목(*는 필수)
내용

코드 리파지토리 작업

소스를 불러드릴 git 등에 대한 정보 설정

사용자 작업

git 등에서 불러들인 소스를 빌드 등에 대한 정보 설정

파일(FTP) 작업

원격 호스트와 빌드 작업을 수행할 빌드 호스트 사이에 파일이나 디렉토리를 다운로드하거나 업로드하는 작업 설정

REST 호출 작업

외부 서비스와 REST 방식으로 연동이 필요한 경우, REST 호출 작업을 설정

스크립트 작업

특정 스크립트가 필요할 경우 스크립트 정보 설정

이미지 빌드 작업*

빌드 된 소스를 Base image에 적용하여 신규 이미지를 생성할 수 있도록 Dockerfile 작성

NCP 오브젝트 스토리지 업로드

NCP (Naver Cloud Platform) 오브젝트 스토리지에 파일을 업로드

NCP 오브젝트 스토리지 다운로드

NCP (Naver Cloud Platform) 오브젝트 스토리지에서 파일을 다운로드

SonarQube 스캔

SonarQube를 이용하여 소스코드의 정적분석을 수행 (현재는 Java Maven Build 환경에서만 실행 가능)

1-2. 코드 리파지토리 작업

  1. [코드 리파지토리 작업] 선택합니다.

    [화면] 빌드 생성 - 코드 리파지토리 작업 선택
  2. 소스를 불러올 때 사용할 정보를 입력하고, [적용] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 코드 리파지토리 작업 추가

    항목(*는 필수)
    내용

    작업 명*

    이미지 빌드에 대한 작업 단계, 해당 작업에 대한 제목 입력

    리파지토리 주소*

    소스를 불러들일 git 등에 대한 주소 입력

    브랜치*

    리파지토리에 적용된 소스 브랜치 입력

    인증

    인증에 대한 콤보 박스 선택 시 git 접속에 필요한 사용자 계정, 패스워드 입력

    코드 저장 경로

    • 소스를 저장할 디렉토리 입력

    • 미 작성 시 git 프로젝트 이름으로 자동 생성

1-3. 사용자 작업

  1. [빌드 작업 추가] 버튼을 클릭하여 [사용자 작업]을 선택합니다.

    [화면] 빌드 생성 - 사용자 작업 선택
  2. [실행 정보] 항목에 소스 빌드에 필요한 명령어를 입력합니다.

    [화면] 빌드 생성 - maven 빌드 실행 정보 입력
    [화면] 빌드 생성 - ant 빌드 실행 정보 입력

    항목(*는 필수)
    내용

    작업 명*

    작업 내용에 대한 자세한 정보 작성

    실행 경로

    • 빌드 컨테이너에서 빌드가 실행될 경로

    • 작성 시 /build 입력(고정 값)

  3. [작업 볼륨] 항목에 소스 빌드 시 필요한 디렉토리 경로를 입력하고, [적용] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 작업 볼륨 정보 입력

    항목(*는 필수)
    내용

    컨테이너 경로*

    소스를 빌드 할 컨테이너의 경로를 작성

    빌드 호스트 경로*

    소스 빌드 시 임시 컨테이너를 생성하여 빌드를 진행하게 되는데, 이때 사용되는 임시 컨테이너의 경로

1-4. 파일(FTP) 작업

파일(FTP) 작업은 빌드할 대상 관련 리소스를 포함하는 원격 호스트와 빌드 작업을 수행할 빌드 호스트 사이에 파일이나 디렉토리를 다운로드하거나 업로드용으로 사용합니다.

  1. [빌드 작업 추가] 버튼을 클릭하고, [파일(FTP) 작업]을 선택합니다.

    [화면] 빌드 생성 - 파일(FTP) 작업 정보 선택
  2. 파일(FTP) 작업을 위한 정보를 입력하고, [적용] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 파일(FTP) 작업 정보 입력
항목(*는 필수)
내용

작업 명*

파일(FTP) 에 대한 작업 단계를 말하며, 해당 작업에 대한 이름 입력

호스트 주소*

업로드가 필요한 디렉토리 또는 파일이 있는 server 주소

인증*

호스트 주소의 계정과 패스워드가 있을 경우 설정 필요

사용자/패스워드*

호스트 주소의 접속 계정과 패스워드

작업 유형(택1)

File Download (이미지 빌드 시 이미지 안에 넣을 경우 해당 유형 선택 필요)

원격 디렉토리/파일*

이미지 빌드 시 이미지에 업로드 할 파일의 절대 경로 (호스트 주소에 해당 파일이 존재해야 함)

빌드 호스트 디렉토리*

업로드 할 디렉토리 위치 (/tmp/ 고정)

1-5. REST 호출 작업

REST 호출 작업은 외부 서비스와 REST 방식으로 연동이 필요한 경우에 사용합니다.

  1. [빌드 작업 추가] 버튼을 클릭하고, [REST 호출 작업]을 선택합니다.

    [화면] 빌드 생성 - 파일(FTP) 작업 정보 선택
  2. REST 호출 작업을 위한 정보를 입력합니다.

    [화면] 빌드 생성 - REST 호출 작업 정보 입력

    항목(*는 필수)
    내용

    작업 명*

    REST 호출에 대한 작업 단계, 해당 작업에 대한 이름 입력

    REST Method(택1)

    API를 호출할 Method 선택

    URL*

    API를 호출할 URL 작성

    인증

    호스트 주소의 계정과 패스워드가 있을 경우 설정 필요

    사용자/패스워드

    호스트 주소의 접속 계정과 패스워드

    접속 타임아웃*

    API 호출에 대한 응답 시간 작성

    기대 응답 코드*

    API 호출 후 성공 코드 작성

    (ex] 200)

    기대 응답 내용

    공백으로 비워 둬야 함

    응답을 받을 저장 빌드 호스트 경로

    응답 값 저장이 필요할 경우 파일명 작성 (ex] response.txt)

  3. HEADER가 필요한 경우, [Header 추가]를 선택하여 Header와 Value 값을 입력하고, [적용] 버튼을 클릭합니다.

    [화면] 빌드 생성 - REST 호출 작업 정보 입력
  • Header : Authorization, Value : Basic {인증 문자열} 형식으로 입력합니다.

  • {인증 문자열}은 Image 레지스트리의 id:password을 base64로 encoding 한 문자열 사용합니다.

1-6. 스크립트 작업

스크립트 작업은 이미지 빌드 시 필요한 스크립트가 있을 경우에 사용합니다.

  1. [빌드 작업 추가] 버튼을 클릭하고, [REST 호출 작업]을 선택합니다.

    [화면] 빌드 생성 - 스크립트 작업 정보 선택
  2. 스크립트 작업을 위한 정보를 입력하고, [적용] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 스크립트 작업 정보 입력

    항목(*는 필수)
    내용

    작업 명*

    이미지 빌드에 대한 작업 단계를 말하며, 해당 작업에 대한 제목을 입력

    스크립트 내용 입력*

    실행할 스크립트 내용 작성

1-7. 이미지 빌드 작업

  1. [빌드 작업 추가] 버튼을 클릭하여 [이미지 빌드 작업]을 선택합니다.

    [화면] 빌드 생성 - 이미지 빌드 작업 선택
  2. 소스 빌드가 끝나면, 컨테이너 이미지를 만들기 위한 도커 파일 내용을 입력하고, [적용] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 도커 파일 내용 입력

    항목(*는 필수)
    내용

    작업 명*

    이미지 빌드에 대한 작업 단계를 말하며, 해당 작업에 대한 이름 입력

    도커 파일 내용 입력*

    실제 컨테이너 이미지를 만들기 위해 도커 파일 내용 입력

  3. [저장] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 빌드 저장
  4. 빌드 노트에 빌드에 대한 코멘트를 입력하고, 저장 버튼을 클릭합니다.

    [화면] 빌드 생성 - 빌드 노트 입력

  5. 아래 메시지를 확인하고, [ok] 버튼을 클릭합니다.

    [화면] 빌드 생성 - 빌드 저장

1-8. NCP 오브젝트 스토리지 업로드

  1. [빌드 작업 추가] 버튼을 클릭하고, [NCP 오브젝트 스토리지 업로드]을 선택합니다.

    [화면] 빌드 생성 - NCP 오브젝트 스토리지 업로드 선택

  2. NCP 오브젝트 스토리지에 업로드하기 위한 정보를 입력합니다.

    [화면] NCP 오브젝트 스토리지 업로드 정보 입력

항목(*는 필수)
내용

작업 명*

해당 작업이 어떤 내용 인지에 대한 내용 등을 작성

리전*

오브젝트 스토리지가 있는 리전 명 작성

리전 API Ur*

위에서 작성한 리전에 대해 NCP에서 제공하고 있는 API Url 작성

AccessKeyId*

오브젝트 스토리지 접근을 위한 AccessKeyId 작성

SecretAccessKey*

오브젝트 스토리지 접근을 위한 SecretAccessKey 작성

버킷*

NCP에서 생성한 버킷명 작성

버킷 저장 경로*

버킷에 업로드할 경로 입력

로컬 파일 경로*

업로드할 파일 경로와 파일명 작성

업로드 타임아웃*

업로드 타임아웃 시간 작성

1-9. NCP 오브젝트 스토리지 다운로드

  1. [빌드 작업 추가] 버튼을 클릭하고, [NCP 오브젝트 스토리지 다운로드]을 선택합니다.

    [화면] 빌드 생성 - NCP 오브젝트 스토리 다운로드 선택

  2. NCP 오브젝트 스토리지에서 다운로드하기 위한 정보를 입력합니다.

    [화면] NCP 오브젝트 스토리지 다운로드 정보 입력
항목(*는 필수)
내용

작업 명*

해당 작업이 어떤 내용 인지에 대한 내용 등을 작성

리전*

오브젝트 스토리지가 있는 리전 명 작성

리전 API Ur*

위에서 작성한 리전에 대해 NCP에서 제공하고 있는 API Url 작성

AccessKeyId*

오브젝트 스토리지 접근을 위한 AccessKeyId 작성

SecretAccessKey*

오브젝트 스토리지 접근을 위한 SecretAccessKey 작성

버킷*

NCP에서 생성한 버킷명 작성

버킷 저장 경로*

버킷에 다운로드할 경로 입력

로컬 파일 경로*

업로드할 파일 경로와 파일명 작성

업로드 타임아웃*

업로드 타임아웃 시간 작성

1-10. SonarQube 스캔

  1. [빌드 작업 추가] 버튼을 클릭하고, [SonarQube 스캔]을 선택합니다.

    [화면] 빌드 생성 - SonarQube 스캔 선택

  2. SonarQube 스캔 작업을 위한 설정 정보를 입력합니다.

    [화면] SonarQube 스캔 작업 설정
항목(*는 필수)
내용

작업 명

해당 작업이 어떤 내용 인지에 대한 내용 등을 작성

애플리케이션 언어

Java 만 지원

Language version/ framework

Java 8, Java 11, Java 17 중 선택

빌드 도구

현재 Maven만 지원

SonarQube 호스트 주소*

정적 분석 결과를 전송할 SonarQube 서버 호스트 주소

SonarQube 프로젝트 키*

정적 분석 결과를 전송할 SonarQube Project Key

SonarQube 토큰*

SonarQube 인증 토큰

실행 경로*

정적 분석을 실행할 경로

작업 볼륨 추가

볼륨 추가 버튼을 클릭하여 실행 경로 항목(컨테이너 경로)과 소스 다운로드 받은 경로(빌드 호스트 경로)를 Mount

2. 이미지 빌드 실행

2-1. 이미지 빌드 실행

  1. 빌드가 실행되면 한 번은 자동으로 이미지 빌드가 진행되며, 빌드에 대한 정보와 진행 상황을 확인할 수 있습니다.

    [화면] 빌드 상세 - 빌드 정보 확인
  2. [로그 보기] 버튼을 클릭하면 이미지 빌드에 대한 로그를 확인할 수 있습니다.

    [화면] 빌드 상세 - 빌드 로그 확인
    [화면] 빌드 상세 - 빌드 로그 확인
  3. 정상적으로 빌드가 완료되면, 모든 진행 상황이 Done으로 표시됩니다.

    [화면] 빌드 상세 - 빌드 실행 완료

2-2. 이미지 빌드 재실행

  1. 해당 빌드의 상세 화면으로 이동합니다.

    [화면] 빌드 목록 - 빌드 상세 페이지 접속

  2. 재실행할 빌드의 태그를 클릭합니다.

    [화면] 빌드 목록 - 빌드 상세 페이지 접속
  3. [재실행] 버튼을 클릭합니다.

    [화면] 빌드 목록 - 빌드 재실행
  4. 빌드 노트를 입력하고, [저장] 버튼을 클릭합니다.

    [화면] 빌드 목록 - 빌드 노트 입력
  5. 빌드 진행 과정을 확인합니다.

    [화면] 빌드 목록 - 빌드 재실행

2-3. 이미지 빌드 내역 확인

  1. 해당 빌드의 상세 화면으로 이동합니다.

    [화면] 빌드 목록 - 빌드 상세 페이지 접속

  2. [빌드 내역]을 클릭합니다.

    [화면] 빌드 목록 - 빌드 내역 페이지 접속
  3. 해당 빌드의 태그를 클릭합니다.

    [화면] 빌드 내역 목록 - 빌드 내역 상세 페이지 접속
  4. 빌드 내역 상세한 정보를 확인합니다.

    [화면] 빌드 상세 - 빌드 내역 정보 확인

Last updated