Docker + Gradle + Spring Boot でWarファイル作成後にTomcatにDeproy
①Spring BootをGradleでビルド、Warファイルを作成する
②TomcatにWarファイルをDeproyする
前回の続きです
Vscode + Docker + Spring Boot 構築
必要なファイル
以下の記事でアプリを構築しておく
Vscode + Docker + Spring Boot 構築
github.com
以下を確認しておく
ない場合は作成する
ServletInitializer.java
package com.example.demo; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DemoApplication.class); } }
別のtomcatコンテナにDeproyする場合に必要となる
build.gradle
plugins { id 'org.springframework.boot' version '2.5.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'war' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } war { archiveName 'helloworld.war' } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' } test { useJUnitPlatform() }
Warファイル作成用のpluginが追加されているかの確認
id 'war'
dependenciesにspring boot に内蔵されているtomcatを使用しない設定が追加されているかの確認
この記述がないとtomcatが多重起動してしまう
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
手順① Spring BootをGradleでビルド、Warファイルを作成する
- gradleがinstallされていることの確認
gradle -v
- tomcatのversionを調べる
Deproy先のtomcatのversionを合わせるため
./gradlew dependencies
9.0.52
であることを確認
Deproy先のtomcatのversionを9.0.52
とする
+--- org.springframework.boot:spring-boot-starter-tomcat:2.5.4 | | +--- jakarta.annotation:jakarta.annotation-api:1.3.5 | | +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.52 | | +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.52 | | \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.52 | | \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.52
- build.gradleを修正する
warファイルの名前を変更するため以下を追加
war { archiveName 'helloworld.war' }
- Warファイルを作成する
gradle build
build/libs/直下にwarファイルが作成される
build/libs/helloworld.war
手順② TomcatにWarファイルをDeproyする
Deproy先のTomcatサーバーは以下を使用
tokuty.hatenablog.com
- git clone
git clone git clone https://github.com/TakushiTokuyama/Docker.git
起動するまでは記事を参照
- WarファイルをDeproyする
さきほど作成したhelloworld.war
をTomcatのwebapps/
にコピーして設置する