Springboot + Docker + GCP 배포(m1)

wisdom·2022년 8월 30일
0

백엔드 개발자라면?

목록 보기
21/42

  • Dockerfile 을 build 해서 docker image 파일을 생성한다.
  • docker image 파일을 dockerhub에 push 한다.
  • 서버에서 dockerhub에 존재하는 docker image 파일을 pull로 받아온다.
  • docker run 명령어를 통해 docker image 파일을 실행한다.

스프링부트 애플리케이션을 도커 이미지로 만들어서 GCP 인스턴스에 배포해보자

  1. 루트 폴더에 Dockerfile 생성
FROM openjdk:18  
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar  
ENTRYPOINT ["java","-jar","/app.jar"]
  1. 도커 허브에서 repository 만들기

  2. 도커 이미지 생성(m1 기준)

docker build --build-arg JAR_FILE=build/libs/\*.jar -t wisdom08/spring-boot-cpu-bound --platform linux/amd64 .
  • -t 'srpingio': 도커 허브의 사용자 이름
  • /spring-boot-cpu-bound . : 저장소 이름

참고: 도커 이미지 생성 삽질 기록

  1. 우선 생성된 도커 이미지 파일을 로컬에서 테스트로 실행해봄( -> 도커 이미지 안에 있는 jar파일을 로컬에서 실행)
docker run -p 80:80 wisdom08/spring-boot-cpu-bound                 
  1. 도커 이미지를 도커 허브에 업로드
docker login

docker push wisdom08/spring-boot-cpu-bound
  1. GCP 인스턴스 생성 후 도커 설치, 실행
sudo yum install docker

sudo systemctl start docker
  1. 도커 허브에서 pull
sudo docker pull wisdom08/spring-boot-cpu-bound
  1. pull 된 도커 이미지 실행
sudo docker run -p 80:80 wisdom08/spring-boot-cpu-bound
  • -p 80{host port}:80{container port}: 외부에서 host port 80으로 요청이 들어오면 그 요청이 container port 80으로 포워딩된다.
profile
문제를 정의하고, 문제를 해결하는

0개의 댓글