Docker 빌드를 위한 Jenkins 활용 소개

Hyerin·2022년 9월 8일
0

빌드(Build)란?

컴퓨터 소프트웨어 분야에서 소프트웨어 빌드(software build)는 소스 코드 파일을 컴퓨터나 휴대폰에서 실행할 수 있는 독립(standalone) 소프트웨어 아티팩트로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다.

소프트웨어 빌드에 있어 가장 중요한 단계중 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정이다. 컴퓨터 프로그램을 빌드하는 과정은 보통 다른 프로그램을 제어하는 프로그램인 빌드 도구에 의해 관리된다.



도커 빌드

  • 컨테이너 이미지를 생성하기 위한 빌드를 하기 위해서 Dockerfile이 필요하다.
  • Dockerfile은 최소한의 패키지를 설치하고 자신만의 설정을 담은 파일이다.
  • 여러 패키지 설치나 설정을 저장한 Dockerfile을 빌드할 때는 layer구조로 생성한다.
    이미지가 레이어로 하나씩 쌓여 스택구조를 가진다.
  • 여러 개의 layer가 하나의 파일시스템으로 보이는 이유는 모든 레이어들을 유니온 파일 시스템(Union File System) 때문이다.


설정명령어 목록

명령어기능
FROM컨테이너의 Base Image 지정
RUN명령어 실행
CMD컨테이너내에서 실행 명령어
LABELLabel 설정
EXPOSE컨테이너 포트 노출
ENV환경 변수
ADD파일/디렉토리 경로 추가
COPU파일 복사
ENTRYPOINT컨테이너 실행시 실행되는 명령어
VOLUME특정 경로를 볼륨으로 마운트
USER사용자 지정
WORKDIR작업 디렉토리
ARGDockerfile에서 사용되는 변수
  • ENTRYPOINT 는 컨테이너 실행 후 최초로 실행되는 명령어가 있을 때만 사용 가능
  • CMD 는 컨테이너 실행 시 시작되는 명령어이지만 실행한 후에도 추가적으로 사용 가능


Docker 빌드 명령어

1. 기본 빌드 명령어:

docker build -t <생성할 이미지명> -f <dockerfile 파일명><빌드할 코드 경로>

2. dockerfile 지정을 위한 -f 옵션 적용:

docker build -t <생성할 이미지명><빌드할 코드 경로>


Docker 빌드를 위한 Jenkins 활용

  • 자바 런타임 위에서 동작하는 빌드, 테스트, 배포와 같은 모든 소프트웨어 개발 릴리스 과정을 자동화해주는 워크플로우 도구이다.
  • CI/CD를 구현하고 개발부터 운영환경까지 애플리케이션의 수명주기(SDLC)의 전반적인 수명을 담당한다.

<출처>
패스트캠퍼스 강의 - Kubernetes 와 Docker로 한 번에 끝내는 컨테이너 기반 MSA
https://fastcampus.co.kr/dev_online_kubemsa

profile
DevOps, 코딩 기록

0개의 댓글