aws에 Django 프로젝트 빌드하는 과정을 기록합니다.
<서버 콘솔>
github clone을 위한 deploy key 생성 :
ssh-keygen -t rsa -> Enter file in which to save the key 그냥 엔터 -> enter passphrase 비번 입력
-> ~/.ssh 밑에 id_rsa.pub 파일 생김 -> cat id_rsa.pub -> 복사 -> github clone할 resposetory -> settings -> deploy keys -> add deploy key -> 복사값 입력 > 서버에서 push도 허용할 경우는 allow write access 체크
github 계정에 등록할 public key 생성:
ssh-keygen -t rsa -C "git hub이메일" -> Enter file in which to save the key 그냥 엔터 -> enter passphrase 비번 입력
-> ~/.ssh 밑에 id_rsa.pub 파일 생김 -> cat id_rsa.pub -> 복사 -> github 계정 -> settings -> SSH and GPG keys -> new ssh key -> 퍼블릭 key 값 붙여넣기
서버에서 프로젝트용 폴더(docker-django) 생성 후 git repository를 git clone
vi requiremnets.txt -> 마지막 줄에 uwsgi 추가
주소를 활용하여 도커 다운로드:
curl -fsSL https://get.docker.com/ | sudo sh
도커 접근 권한 설정(다수의 도커 컨테이너들을 유기적으로 관리하기 위함, super user 권한, 안하면 나중에 docker build시 문제 발생):
sudo usermod -aG docker $USER
도커 실행문 작성:
vi Dockerfile
# 아래의 docker build에서 만들 docker/django 이미지를 만뜰 때 python3.6.7 이미지로부터 시작을 해라
FROM python:3.6.7
ENV PYTHONBUFFERED 1
# RUN 명령어는 docker 컨테이너가 생성되면서 부터 바로 실행하라는 명렁어
RUN apt-get -y update
RUN apt-get -y install vim
RUN mkdir /srv/docker-django
# 현재의 directory를 /srv/docker-django로 옮기기
ADD . /srv/docker-django
# /srv/docker-django directory가 working directory가 됨
WORKDIR /srv/docker-django
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# 8000번 포트가 뜰 수 있도록
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
도커 이미지 생성:
도커 이미지 리스트 확인:
docker image list
도커 이미지 실행:
어떤 도커 컨테이너가 실행되고 있는지 확인:
docker ps
도커 종료:
docker stop
@@@ECR을 사용할 경우
ec2에서 위의 도커 이미지 생성 단계 까지는 동일
이미지에 tag 달아주기 :
docker tag 'docker_image_id' 'ECR에서 생성한 repository uri'
aws ecr login:
aws ecr get-login --no-include-email --region ap-northeast-2
-> 반환값 복사해서 다시 입력
tag 사항 push:
docker push 'ECR에서 생성한 repository uri'