[AWS] AWS에 docker로 Django 프로젝트 빌드하기

남영민·2021년 11월 21일
0

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 build는 위에서 설정해준 Dockerfile에 해당하는 이미지를 만들어줌
  • 위의 이미지의 이름을 docker/django로 설정(디렉토리 아님)
  • '.'은 현재 directory에서 아래의 실행문을 실행시키라는 뜻
    docker build -t docker/django .

도커 이미지 리스트 확인:
docker image list

도커 이미지 실행:

  • docker run은 생성된 도커 이미지를 실행 시켜줌
  • -p 8000:8000 : 사용자가 8000번 포트로 들어오면 서버의 8000번 포트로 보내기
  • docker/django : 실행할 도커 이미지
  • -d를 추가하여 docker run -d -p 8000:8000 docker/django를 실행하면 백그라운드 실행으로 서버를 띄우고 추가적인 명령어 입력 가능
    docker run -p 8000:8000 docker/django

어떤 도커 컨테이너가 실행되고 있는지 확인:
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'

profile
성장하는 개발자

0개의 댓글