[GCP 원데이] Dockerized 애플리케이션 배포

2021. 4. 23. 13:32GCP/원데이

1. 개요

  • 로컬에서 Dockerfile을 생성해준다.
  • 로컬에서 Dockerfile을 빌드하여 이미지를 생성한다.
  • 만든 이미지를 DockerHub에 업로드 (push)
  • GCP 인스턴스는 DockerHub에서 이미지를 (pull)
  • GCP 인스턴스에서 이미지를 실행 (run)

 

 

 

2. Dockerfile

Spring Boot Docker 문서의 Containerize It 항목부터 동일하게 진행해준다.

1) Dockerfile 생성

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

2) 빌드

docker build --build-arg JAR_FILE=build/libs/\*.jar -t springio/gs-spring-boot-docker .

여기서 springio는 도커허브의 사용자 이름이 되고 gs-spring-boot-docker는 저장소 이름이 된다.

docker build --build-arg JAR_FILE=build/libs/\*.jar -t ozofweird/spring-boot-cpu-bound .

3) 로컬 테스트

docker run -p 80:80 ozofweird/spring-boot-cpu-bound

기존에는 jar 파일을 직접 실행했으나, 도터 이미지 안에 jar 파일을 실행한 것이다.

4) Docker Hub 업로드

docker push ozofweird/spring-boot-cpu-bound

만약 접근 거부에 대한 내용이 나오면, 도커 허브에 로그인하는 절차를 거쳐야한다.

docker login

 

 

 

3. GCP

1) 인스턴스 생성 및 도커 설치

sudo yum install docker
sudo systemctl start docker

2) GCP 이미지 pull, run

도커 허브에서 이미지를 pull 받아준다.

sudo docker pull ozofweird/spring-boot-cpu-bound
sudo docker run -p 80:80 ozofweird/spring-boot-cpu-bound

3) Artillery

728x90