매거진 배포

도커를 사용한 배포 단계 정리

AWS EC2

by 내가 사는 세상

(at CMD) EC2 접속

CMD에서 키(.pem)파일이 있는 위치에 들어간 뒤, 아래의 명령을 친다. CMD가 아니라 putty도 활용가능하다.

C:\>ssh -i 키이름.pem ubuntu@ec2-12-345-67-890.ap-northeast-2.compute.amazonaws.com



(at EC2) 리눅스 속 도커 컨테이너 상태 확인

ubuntu@ip-123-45-67-890:~$ sudo docker ps



(at EC2) 컨테이너 내리기

ubuntu@ip-123-45-67-890:~$ sudo docker stop $(sudo docker ps -a -q)



(at 데스크탑) 로컬에서 소스코드가 들어간 압축파일 만들기

C:\service\iintheworld>git archive --format tar --output ./project.tar main



(at 리눅스(EC2) tmp 폴더) FileZilla를 활용하여 tar파일 업로드

로컬의 압축파일(project.tar)을 리눅스 서버에 복사

참고) 권한문제가 생긴다면 'sudo chmod -R 777 /폴더명' 명령 활용



(at 리눅스(EC2)) 압축파일 압축해제

tar폴더의 압축파일을 app폴더로 압축해제 후 이동

ubuntu@ip-123-45-67-890:~$ sudo rm -rf /app/* && sudo tar -xf /tmp/project.tar -C /app



(at 리눅스(EC2)) .env폴더 FileZilla를 활용하여 리눅스(EC2)에 업로드

업로드할 위치는 기존 로컬에서의 코드 구조와 동일하게끔.

참고) 권한문제가 생긴다면 'sudo chmod -R 777 /폴더명' 폴더 접근 권한 변경 명령 활용



(at 리눅스(EC2)) yml파일을 활용하여 컨테이너 배포

ubuntu@ip-123-45-67-890:~$ sudo docker compose -f /app/prod-aws.yml up --build -d --remove-orphans


(at 리눅스(EC2)) logs 폴더 만들기



도커 볼륨 삭제 방법

이름으로 일일히 지워야



sudo docker system prune -a 하면 캐시된 것도 사라짐

keyword
매거진의 이전글도커 컨테이너 DB 접속