Dockerfile은 개발한 어플리케이션을 컨테이너화 할 때, 수작업으로 이루어지는 부분을 손쉽게 수행할 수 있도록 함.
Dockerfile은 컨테이너에 설치할 패키지, 추가할 소스코드, 실행 명령어와 shell script 등을 하나의 파일로 관리

1. Dockerfile 작성

  • 아래 예시를 통해 Dockerfile 생성을 위한 명령어에 대해 이해함
  • whms-1.0.jar 를 포함하고 자동 기동하는 Dockerfile 만들기

  • Dockerfile 스크립트

FROM centos:7
RUN yum update -y
RUN yum install java -y
RUN ["/bin/bash","-c","mkdir -p /sorc001/sftth318/applications"]
RUN ["/bin/bash","-c","mkdir /engn001"]
RUN ["/bin/bash","-c","mkdir -p /logs001/sftth318/springboot"]

ADD ./target/whms-1.0.jar /sorc001/sftth318/applications/
ADD ./restart.sh /engn001/

WORKDIR /engn001
RUN ["/bin/bash","-c","chmod 755 restart.sh"]
CMD java -jar -Dspring.profiles.active=dev /sorc001/sftth318/applications/whms-1.0.jar -DFOREGROUND

  • 설명
항목 설명
FROM 사용자 정의 이미지에 활용되는 기본 이미지 정의
RUN 이미지 생성 과정에서 컨테이너 내부에서 수행되는 명령어
ADD Host 파일 중 컨테이너 특정 디렉토리로 이동
WORKDIR 지정한 디렉토리로 이동
CMD 컨테이너 기동 시 실행 명령어
EXPOSE 빌드로 생성된 이미지에 노출할 포트 설정
-P 플래그로 사용

2. Dockerfile 빌드

  • Dockerfile 빌드하여 이미지 생성
docker build -t whms-test:1.0 ./

3. Dockerfile 파일 기타 명령어

항목 설명 예시 구문
ENV Dockerfile에서 사용될 환경 변수 ENV MYSQL_ROOT_PASSWORD passwd
VOLUME 호스트와 공유할 컨테이너 내부 디렉터리 설정 VOLUME /data001
ARG build 명령어 실행할 때 추가로 입력을 받아 Dockerfile 내에서 사용될 변수 값 ARG my_arg=value1
USER 컨테이너 내에서 사용될 사용자 계정 이름
RUN으로 사용자 그룹과 계정 생성 뒤 사용
USER sftth

카테고리:

업데이트:

댓글남기기