TIL

4.3 Dockerfile을 활용한 다양한 이미지 생성

4.3.1 다양한 방법의 Dockerfile 작성

셸 스크립트를 이용한 환경 구성

# Dockerfile 작성
FROM ubuntu:18:04
RUN apt-get update && \
	apt-get -y install apache2
RUN echo 'Docker Container Application.' > /var/www/html/index.html
RUN mkdir /webapp
# 아파치2에 필요한 환경 변수, 디렉터리, 서비스 실행 등의 정보를 셸 스크립트에 작성하고 실행 권한 부어
RUN echo ... \
	... \
	chmod 744 /webapp/run_http.sh
EXPOSE 80
CMD /webapp/run_http.sh
# 이미지 빌드
DOCKER_BUILDKIT=1 docker build -t webapp:7.0 .

ADD 명령어의 자동 압축 해제 기능

FROM ubuntu:14.04
MAINTAINER "keven-lee <hylee@dshub.cloud>"
RUN apt-get update && apt-get -y install apche2 vim curl

# 다운로드 한 웹 소스 압축 파일을 아파치 기본 웹페이지 경로에 복사
# ADD 명령어는 압축 파일을 해제하여 경로에 복사하는 장점이 있다.
ADD webapp.tar.gz /var/www/html
WORKDIR /var/www/html
EXPOSE 80
CMD /usr/sbin/apachectl -D FOREGROUND

이미지 용량 절감

...
# apt 업데이트 후 필요한 패키지 설치
# 이후 사용했던 apt 캐시를 모두 삭제
RUN apt-get update && \
	apt-get install apache2 -y -qq --no-install-recommends && \
	apt-get clean -y && \
	apt-get autoremove -y && \
	rm -rfv /var/lib/apt/lists/* /tmp/* /var/tmp/*
...