반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 플러터애드몹미디에이션
- 간헐적단식타이머
- 쿠팡파트너스앱
- 운닥
- 간헐적단식 다이어트
- 간헐적단식 관리어플
- ecs
- 방송편성표
- 간헐적단식어플
- 간헐적단식앱
- 간헐적단식식사
- codedeploy
- codebuild
- 체육시설환급
- aws
- 체육시설3만원
- codepipeline
- 간헐적단식
- 간헐적단식관리어플
- 간단
- 재방송
- 롤퀴즈
- 쿠파파
- 논현역헬스장
- 챔피언이름
- 간헐적단식이란
- 헬스장환급
- 운동닥터
- 헬스장할인쿠폰
- 체육시설할인쿠폰
Archives
- Today
- Total
리브어트
Dockerfile을 통해서 이미지 생성 및 Dockerhub push 하기 본문
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
4. 빌드된 이미지를 도커 허브에 push 합니다.
docker login # docker hub에 로그인합니다.
반응형
'Tech > Others' 카테고리의 다른 글
AWS Codepipeline을 이용해서 서버 배포 자동화(Codecommit, Codebuild, Codedeploy, ECR, ECS) - 1 (0) | 2019.04.24 |
---|---|
[Python] Slack Bot 사용하기 (0) | 2019.04.24 |
AWS Lambda로 FCM 전송하기 (0) | 2019.04.02 |
[AWS][Python] AWS Serverless Framework Chalice 사용하기 (0) | 2019.01.28 |
Docker + DockerHub(Automated Build) + Bitbucket 사용하기 (0) | 2018.03.27 |