Java Springboot 웹프로젝트의 Google Cloud Run 서비스 4/4 (Cloud Run 빌드 및 배포)
Springboot + Google Cloud Project
1. Java 애플리케이션의 Cloud Run 배포 과정
2. onda2me java 개발환경
- Eclipse 2021-06 (4.20.0) + Spring Tools 4
- Java 11
- MySQL
- Maven
로컬 빌드 및 배포
1. Springboot 배포용 jar 파일 생성
-
pom.xml 파일 jar 설정 추가
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <groupId>com.onda2me.app</groupId> <artifactId>onda2meapi</artifactId> <version>0.1.1-SNAPSHOT</version> <!-- jar 배포 시 --> <packaging>jar</packaging> <!-- war 배포 시 <packaging>war</packaging> --> </project>
-
프로젝트명> Run As> Maven build
-
Goals: package 입력> Run 실행
-
프로젝트> target> classes> OOO.jar 파일 생성
\onda2me-api\target\classes\onda2meapi-0.1.1-SNAPSHOT.jar
-
jar 실행 ( 애플리케이션 정상 동작여부 확인)
java -jar onda2meapi-0.11.5-SNAPSHOT.jar
2. Dockerfile 작성
-
실행할 jar 파일이 있는 폴더에 Dockerfile 생성
#jdk 이미지 FROM eduosi/jdk #ARG JAR_FILE=onda2meapi-0.9.jar #COPY --from=${JAR_FILE} ./classes/${JAR_FILE} #COPY [원본jar파일] [복사할jar파일] COPY onda2meapi-0.11.5-SNAPSHOT.jar onda2meapi.jar #서비스 포트 EXPOSE 8080 CMD ["java", "-jar", "onda2meapi.jar", ""]
3. doker build (local)
- build image
- 명령 프롬프트창에서 build하기
#docker build -t <생성할 이미지명>:<태그> $docker build -t onda2meapi:0.11.3
- VSCode에서 build하기
- 명령 프롬프트창에서 build하기
- 생성한 image 확인
-
명령 프롬프트창에서 image 확인하기
-
Docker Desktop에서 image 확인하기
-
4. doker run (local)
- image로 웹서비스 실행하기
- 명령 프롬프트 창에서 실행하기
$docker run -p 8080:8080 onda2meapi:0.11.3
-
Docker Desktop에서 실행하기
- 명령 프롬프트 창에서 실행하기
5. local 접속 확인 (local)
-
웹에서 확인하기 (/)
-
웹에서 확인하기 (/api)
Cloud run 빌드 및 배포
이클립스 또는 VSCode 에서는 잘 동작하는 프로젝트가 이미지 생성 후 구글 런에 배포하면 오류가 발생하기도 함.
이런 경우 docker desktop 으로 Run 성공 후 Google Cloud Run에 배포하니 정상 동작함
1. gcloud build
- gcloud CLI로 build 실행
$gcloud builds submit --tag gcr.io/onda2me/onda2meapi:0.10.map
-
Google Cloud> Cloud Storage> Bucket
- Google Cloud> Artifact Registry> 저장소> [프로젝트명]> [이미지명]
2. cloud console deploy
-
웹브라우저로 Cloud Run 콘솔에 접속 Run 콘솔 바로가기
-
배포할 서비스 선택> 새 버전 수정 및 배포 선택
-
컨테이너 수정> 선택
-
배포할 이미지 선택> 배포
3. cloud run 접속 확인
-
웹에서 확인하기 (/)
-
웹에서 확인하기 (/api)
Bootstrap 등 디자인 적용 후 접속확인
- 이클립스 또는 VSCode 에서는 잘 동작하는 프로젝트가 이미지 생성 후 Google Cloud Run에 배포하면 오류가 발생하기도 함.
- Google Cloud Run 배포 시 오류가 발생하는 경우 docker desktop 으로 Run 성공 후 Google Cloud Run에 배포하니 정상 동작함
- onda2me cloud run은 요청중일때만 CPU가 할당되어, 첫 호출은 CPU 활성화 시간이 소요되어 10초 가량 응답지연이 발생함 바로가기
+ 참고
- WSL(= Windows Subsystem for Linux) : 윈도우 상에서 리눅스를 사용할 수 있도록 도와주는 도구로, 단순한 가상머신을 제공하는 것이 아닌 윈도우와 통합해서 사용할 수 있는 리눅스 환경을 제공
- Docker : 다양한 프로그램 및 실행환경을 컨테이너로 추상화하여 프로그램의 배포 및 관리를 단순하게 해주는 가상화 플랫폼
- Dockerfile : 도커 이미지 생성을 위한 지시사항을 포함하는 텍스트 파일
- Container : 프로그램과 그에 필요한 실행환경 등을 포함하여 패키징 된 것
댓글남기기