java 파일 docker 파일로 만들기
- dockerfile생성 후 이미 만들기.
포트 포워딩을 통해서 80포트로 연결 시도시 springboot 포트인 8080 포트로 연결되게하기
- 연결이되면 외부에서 8080 포트로 연결되는거 끊기.
nginx porxy manager 설치 및 추가
docker 파일로 만들기 전에 포트 포워딩을 진행해서 80 포트로 들어오는 경우 8080으로 넘기게 해야한다.
현재 이 부분을 하지 않았기 때문에 http 요청의 경우 80포트 기본이기 때문에 해당 부분이 연결되어있지 않아서 연결 거부가 발생.
현재 사용중인 리눅스 버전 : AWS linux 2023
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 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 커밋정보를 읽어올려는게 실패했다고한다.
docker run \
--name=sbb \
--restart unless-stopped \
-p 80:8080 \
-e TZ=Asia/Seoul \
-e JASYPT_ENCRYPTOR_PASSWORD=$JASYPT_ENCRYPTOR_PASSWORD \
-d \
sbb_1
도커 서버 배포
포트포워딩