SBB - 배포(2)

JIWOO YUN·2024년 6월 10일
0

게시판만들기

목록 보기
18/21
post-custom-banner

할 일

java 파일 docker 파일로 만들기
- dockerfile생성 후 이미 만들기.

포트 포워딩을 통해서 80포트로 연결 시도시 springboot 포트인 8080 포트로 연결되게하기
- 연결이되면 외부에서 8080 포트로 연결되는거 끊기.

nginx porxy manager 설치 및 추가

포트포워딩을 하는 이유

  • docker 파일로 만들기 전에 포트 포워딩을 진행해서 80 포트로 들어오는 경우 8080으로 넘기게 해야한다.

    • 현재 이 부분을 하지 않았기 때문에 http 요청의 경우 80포트 기본이기 때문에 해당 부분이 연결되어있지 않아서 연결 거부가 발생.

      • 헤맸던 부분

        • springboot의 기본 포트가 8080 포트인것과 기본적으로 https 작업을 하지 않았기 때문에 퍼블릭 ip로 접근 시에 연결 거부가 발생하는 것을 보고 왜 안되지하면서 꽤 많이 찾아봤었다.
          • 결론은 aws ec2 인스턴스에 해당 ip로 접근하게 되면 기본적으로 https://공인 ip.com 이쪽으로 연결을 진행하기 때문에 https 작업과 443 포트로 들어올 경우 연결되는 곳이 없기 때문에 연결거부가 발생하여 문제가 발생했었다.
          • 그렇기 때문에 아직까지는 http://공인ip.com:8080 으로 보내줘야 연결이 가능하다.
            • 이 부분 때문에 포트포워딩이 필요함.

현재 사용중인 리눅스 버전 : AWS linux 2023

검색으로 찾은 커맨드

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  • iptables
    • 리눅스 방화벽/패킷 필터링 도구
  • -t nat
    • nat 테이블 사용
  • -A PREROUTING
    • PREROUNTING 체인에 규칙 추가 -> 패킷이 라우팅되기 전에 적용

뒷 부분은 80 패킷으로 들어올 경우 8080으로 리다이렉팅 해주라는 의미

포트포워딩 완료후 제대로 동작하는지 확인.

  • 80 포트로 연결 시도시 해당 8080포트로 연결되는 것으로 포트포워딩이 완료되었다.

해당 프로젝트를 도커 이미지로 생성하기 위해서 Docker을 작성

FROM amazoncorretto:17
ARG JAR_FILE=build/libs/sbb-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]

이슈 발생

  • 도커 파일을 기준으로 빌드를 통해서 이미지를 만들려니까 해당 문제가 발생

  • current commit information was not captured by the build: failed to read current commit information with git rev-parse --is-inside-work-tree
  • 해당 부분에 대해서 1시간 이상 찾아봤는데도 정보가 나오지가 않아서 진짜 모르겠다.

  • 혹시 몰라서 gpt에도 물어봤는데 해당 도커 빌드 컨텍스트가 git 커밋정보를 읽어올려는게 실패했다고한다.

    • 그래서 해당 git clone을 한 디렉토리에서 dockerfile을 만들고 build를 했는데도 같은 위험이 뜬다.
    • 이미지는 만들어지고 실행해봤을 때
docker run \
  --name=sbb \
  --restart unless-stopped \
  -p 80:8080 \
  -e TZ=Asia/Seoul \
  -e JASYPT_ENCRYPTOR_PASSWORD=$JASYPT_ENCRYPTOR_PASSWORD \
  -d \
  sbb_1
  • 도커에서 제대로 실행되고 있는 모습
    • ip를 지웠다보니 이전 이미지랑 차이가 별로없어서 페이지를 다르게
  • 성공적으로 도커 이미지가 실행됬다!

참고 Ref

도커 서버 배포

포트포워딩

profile
열심히하자
post-custom-banner

0개의 댓글