준비 및 확인사항
지원 Java 버전
- 8, 11, 17, 18, 19
- Spring Boot 버전별 필요 Java 사양
- Spring Boot 3.x: Java 17 이상
- Spring Boot 2.x: Java 8 이상
- ⚠️ 로컬/테스트 환경과 클라우드타입에서 설정한 Java 버전이 상이한 경우 정상적으로 빌드되지 않을 수 있습니다.
Spring Boot 버전
- Spring Boot 버전에 따라 필요로 하는 Java 버전 및 기타 설정이 다를 수 있습니다. 공식문서를 참고하여 배포에 필요한 설정을 확인해주세요.
지원 아카이브 형식
- JAR 형태의 빌드 산출물 및 스크립트를 지원하며, WAR는 지원하지 않습니다.
대시보드를 통한 생성
1. 템플릿 선택하기
시작하기 페이지의 언어/플랫폼 카테고리에 접속 또는
⌘ + K
를 사용하여springboot
를 검색하고Spring Boot
템플릿을 클릭하세요.
2. 새 저장소(repository) 생성하기 또는 나의 저장소 선택하기
클라우드타입은 기본적으로 사용자 Github 계정의 저장소에 반영된 소스를 배포합니다.
- 1️⃣ 배포하려는 저장소가 없다면 ⇒ 클라우드타입이 제공하는 예제 저장소를 사용자의 Github 계정에 생성합니다.
- 2️⃣ 배포하려는 저장소가 있다면 ⇒ 클라우드타입에서 배포할 사용자 본인의 저장소를 선택합니다.
1️⃣ 배포하려는 저장소가 없는 경우
- 아래의 그림처럼 비공개 저장소 설정하기 여부만 선택한 후
저장소 만들기
를 클릭하면 사용자의 Github 계정에 해당 템플릿 저장소가 자동으로 생성됩니다.
2️⃣ 배포하려는 저장소가 있는 경우
- Github 계정에 존재하는 저장소를 사용하려는 경우 아래의 화면처럼 여러 저장소 중 배포를 원하는 항목을 선택하세요. 이미 위에서 저장소를 만든 경우 이 부분은 건너뛰어주세요.
- 저장소를 직접 선택한 경우, 빌드 및 시작을 위한 명령어 등 세부 설정이 기본 설정과 다를 수 있습니다. 아래의 그림처럼 빌드 설정의 설정변경 버튼을 클릭하고 수정이 필요한 설정사항을 수정해주세요.
3. 배포하기
- 위 과정을 마친 후 마지막으로 배포할 리전을 선택하고
배포하기
버튼을 클릭하면 배포가 자동으로 진행됩니다.
CLI 를 통한 생성
1. 사전준비
아래 가이드에 따라 CLI 를 설치하고 로그인을 진행해주세요.
CLI 설치하기
2. 설정파일 생성
.cloudtype/app.yaml
파일을 생성하세요.
Spring Boot
name: java-springbootapp: java@11options:ports: 8080context:git:url: https://github.com/cloudtype-examples/java-springboot.gitbranch: mainpreset: java-springboot
3. 배포하기
$ ctype apply
기타
1. 저장소 내 Jar 파일 배포
- Spring Boot Jar 파일을 저장소에 반영하고 배포하는 경우, 배포 설정창의
Pre-built jar file path
필드에 각 빌드도구에 맞는 jar파일의 경로를 입력하고 배포를 진행합니다.- Gradle:
build/libs/[프로젝트명].jar
- Maven:
target/[프로젝트명].jar
- Gradle:
2. 빌드 시 특정 리소스 경로 포함
- 클라우드타입에서 Spring Boot 프로젝트를 배포하는 경우, 정적 리소스 위치로
WebProperties.Resources
에 정의된/static
등을 제외한src
디렉토리의 파일은 빌드 시 포함되지 않습니다. 프로젝트에서 특정 경로의 리소를 참조하는 경우 배포 설정창의Include files in build
에 해당 디렉토리 경로를 작성하고 배포하면 됩니다. 구분자 쉼표(,
)를 사용하여 복수의 디렉토리를 포함시킬 수 있습니다.
3. 멀티모듈 어플리케이션 배포
여러 개의 모듈로 이루어진 Spring Boot 어플리케이션을 배포하는 경우 몇 가지의 작업이 필요합니다. 간단한 예시를 통해 배포 방법을 안내드립니다.
project-root/├── build.gradle.kts├── settings.gradle.kts├── api/│ ├── build.gradle.kts│ └── src/│ └── main/│ ├── kotlin/│ └── resources/├── core/│ ├── build.gradle.kts│ └── src/│ └── main/│ ├── kotlin/│ └── resources/└── gradle/└── wrapper/├── gradle-wrapper.jar└── gradle-wrapper.propertiesapi
,core
모듈로 구성하고api
를 main class로 지정Spring Boot 템플릿 선택 후 다음의 설정 적용
- Start command:
java -jar api/build/libs/api-0.0.1-SNAPSHOT.jar
java -jar
의 인수로<main 모듈명>/build/libs/<main 모듈명>-0.0.1-SNAPSHOT.jar
- Include files in build:
core,api
- 모듈의 디렉토리명을 쉼표로 구분하여 입력
- Start command:
4. Dockerfile 배포
참고
FAQ
- 서비스 접속 시 50X 페이지만 뜹니다.
- Spring Boot 어플리케이션을 배포할 때, prod/dev/staging 등 profile을 지정해서 실행하고 싶어요.
- Spring Boot 어플리케이션에서 Timezone(시간대)를 설정할 수 있나요?