유누킴

Dockerfile을 통해서 이미지 생성 및 Dockerhub push 하기 본문

Tech/Others

Dockerfile을 통해서 이미지 생성 및 Dockerhub push 하기

Yunhoo_kim 2019. 4. 23. 12:41
728x90

페이타임, 운동닥터 API 서버 모두 AWS의 Docker를 기반으로 ECS(Elastic Container Service)에 배포 운영 중이다.

Codepipeline을 통해서 버전 릴리즈 때마다 도커 이미지를 새로 생성하고, 생성된 이미지를 ECS에 배포한다.

Codepipeline이 동작할 때마다 도커는 우분투 이미지를 중심으로, 서버 배포에 필요한 의존성 라이브러리를 다운로드한다.

하지만 코드가 바뀌는 일은 빈번히 일어나지만, 파이썬 버전, Nginx 버전 등은 쉽게 바뀌지 않기 때문에 base 이미지를 생성해서 도커 빌드 시간을 최소화 할 수 있다.

base 이미지를 생성하게 되면 배포시 도커 이미지는 이미 만들어진 base 이미지를 사용하므로 의존성 라이브러리 다운타임을 줄일 수 있다.

 

1. 도커 파일 생성하기 (Dockerfile)

  1 FROM ubuntu:18.04
  2 MAINTAINER  yunhoo@wetrain.co.kr
  3 RUN apt-get -y dist-upgrade
  4 RUN apt-get -y upgrade
  5 RUN apt-get -y update
  6 RUN apt-get -y install apt-utils vim \
  7     locales locales-all
  8 ENV LC_ALL en_US.UTF-8
  9 ENV LANG en_US.UTF-8
 10 ENV LANGUAGE en_US.UTF-8
 11 # Install python and virtualenv
 12 RUN apt-get install -y build-essential python3-pip python-virtualenv ca-certificates uwsgi-plugin-python3 nginx libmemcached-dev
 13 
 14 # Install 
 15 RUN apt-get install -y libpq-dev libjpeg-dev zlib1g-dev libgeoip-dev \
 16     uwsgi-plugin-python3 nginx libmemcached-dev
 17 
 18
 19 RUN pip3 install --upgrade pip
 20 RUN pip3 install --upgrade setuptools
 21 RUN pip3 install uwsgi
 22 RUN pip3 install awscli

 

2. Dockerfile를 빌드합니다.

docker build --tag <docker_hub_user_name>:tag_name .
docker build --tag woondoc/base_woondoc .


3. 정상 빌드된 이미지를 확인합니다.

docker images

docker images

4. 빌드된 이미지를 도커 허브에 push 합니다.

docker login # docker hub에 로그인합니다.

 

https://hub.docker.com/r/woondoc/base_woondoc