본문 바로가기
배포/AWS

AWS EC2에서 Docker를 사용해서 프로젝트 배포 방법

by ysh2954 2025. 3. 1.

배포과정(요약설명)

 


배포과정(세부내용)

  • 재배포시 필요 사전 작업
    1. sudo docker-compose down (프로젝트 폴더 안에서)
    2. 사용하지 않는 컨테이너, 이미지 삭제(sudo docker rm(i) <ID>)
      • sudo docker contatiner ls -a
      • sudo docker images
    3. sudo rm -rf 프로젝트
  • 배포 방법
    1. sudo git clone <URL>  ( git clone --branch develop <URL>)
      ↓↓↓↓↓↓↓↓프로젝트 폴더 안에서 작업↓↓↓↓↓↓↓↓
    2. .env(+.env.prov)파일 추가, docker-compse파일 수정
      2-1. application.properties에서 spring.profiles.active=prod 설정(.env.prod설정 파일 사용)
      2-2. docker-compse에 참조할 env파일이 여러개일 경우 정상동작X, 필요한 .env.prod만 작성
    3.  keystore.p12파일 프로젝트내에 이동
    4. sudo chmod u+x gradlew
    5.  sudo ./gradlew build -x test
    6. cd /build/libs에 있는 jar파일 중 -SHANPSHOT.jar만 남기고 plain들어간 것은 삭제
    7. sudo docker-compose up -d
  • 기타
  • 이슈(기타 오류 발생시 (application.properites, docker-compse)
    • 로그확인(프로젝트) : docker logs <컨테이너ID>
    • 로그확인(프로젝트+DB) : docker-compose logs -f 
    • 포트, ssl설정은 env파일에 하면 못읽어서 application.properites에직접 작성
    • keystore파일 권한 ubuntu로 변경 -> sudo chown ubuntu:ubuntu keystore.p12
    •  keysotre 파일 위치를 못 찾는 경우 docker-compse에 설정
    • 정확한 브랜치가 맞는지 확인 : git clone시 : git clone --branch develop <URL>
    • 카카오 토큰을 받아오지 못하고 있음  -> 카카오 디벨로퍼 토큰 전송 url변경 필요(application.properites, kakao developer모두 수정 필요)
       => Git에서 clone받아서 수정한 파일 : docker-compse, application.properites, env , conf/SecurityConfig
    •  프로젝트 실행시 http관련 오류 발생시 spring프로젝트 ssl설정을 해줘야 한다.
      => https://coding-nyan.tistory.com/164   
    • DB설계 변경 후 엔티티 관계가 정상 반영되지 않을 경우 (application.properties에서 ddl-auto=create로 설정하고 재빌드 하고 다시 update로 변경)
  • 개선사항
    1. 내용 : 현재 특정 이미지를 /var/www/uploads에 저장하도록 하고 있음 -> 실제 Linux경로에는 해당 이미지 파일이 없는 문제
      (원인 : Docker의 볼룸 마운트가 설정 되지 않았기 때문 -> 컨테이너 내부에만 저장됨 --> 컨테이너 종료 한 뒤 다시 설정하면 파일이 사라지는 문제 발생)
      • 컨테이너 내부 접속 : docker exec -it 컨테이너ID /lib/sh
    2. docker-compose에서 .env파일을 읽어 오지 못 하는 경우

 

'배포 > AWS' 카테고리의 다른 글

AWS기본 이해  (0) 2025.03.01