[AWS] AWS에 docker로 Django 프로젝트 빌드하기
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'
Author And Source
이 문제에 관하여([AWS] AWS에 docker로 Django 프로젝트 빌드하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coffiter/AWS-AWS에-docker로-Django-프로젝트-빌드하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)