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 |
댓글남기기