main
브랜치에 배포와 관련된 파일들을 전부 올려 놓았다.CI
와 관련된 브랜치를 하나 파서 그곳에서 테스트를 하고 코드가 좋다면 main
으로 병합해야 한다. CI
에 대한 브랜치를 파 그곳에서 작업하는 것이 권장된다.instance type
은 프리티어를 사용해준다.위치 무관
을 선택했다.인스턴스 시작
을 눌러 인스턴스를 만들어 준다.docker
를 사용할 것이기 때문에 cloud9을 사용하지 않는다.연결
을 눌러준다.연결
버튼을 눌러준다.$ git clone {repository_ssh}
$ ssh-keygen -t rsa -C "깃헙에서 쓰는 email@email.com"
$ cat /home/ubuntu/.ssh/id_rsa.pub
ls
를 입력해 클론이 잘 되었는지 확인해보자.$ sudo apt-get update
$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt install docker.io
$ sudo systemctl start docker
$ sudo docker ps
$ sudo systemctl enable docker
$ docker --version
$ sudo apt install docker-compose
ip 주소
를 받게 된다. 하지만 해당 주소는 인스턴스를 껐다 키게 되면 변경이 되게 된다. elastic ip
를 설정해보도록 하겠다.elastic ip
를 설정하고 사용하지 않은채 그대로 두어도 과금이 된 경험이 있다.탄력적 ip
메뉴가 보인다. 우상단 버튼을 눌러 할당을 하도록 한다.43.200.168.137
이 적용되어 있는 것을 볼 수 있다.인스턴스 연결
을 했던 페이지로 돌아와 새로고침을 해준다.git checkput deploy
를 통해 배포용 브랜치
로 변경해야 한다. .env
파일이 하나도 없는 것을 볼 수 있다..env
파일들을 생성해보도록 하겠다. .env.prod
파일을 생성하도록 하자.DJANGO_ALLOWED_HOSTS
에 탄력적 ip 주소
를 추가해주도록 한다. i
를 눌러 insert
모드로 만든 후 로컬에 있는 파일을 복붙해준다.esc
키를 누르고 shift + :
을 친 다음, wq(write quit)
을 눌러 저장하고 꺼준다.$ vim .env.prod
.env.postgres.prod
파일도 동일한 방식으로 만들어 준다.$ sudo docker-compose -f docker-compose.prod.yaml up -d --build
$ sudo docker-compose exec web python manage.py makemigrations
$ sudo docker-compose exec web python manage.py migrate
sudo docker ps
를 통해 정확히 확인하고 명령어를 입력해야 한다.$ sudo docker exec -ti turtle_drf_backend_web_1 /bin/sh
control + d
를 눌러 컨테이너에서 나올 수 있다.