本家はこちら
Java(Spring)アプリをdocker化してくれるんだけど、環境ごとに分けたいことはあるので、パラメータを切り替えられるようにする。
buildscript {
ext {
springBootVersion = '2.0.3.RELEASE'
jibVersion = "0.9.8"
}
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath "gradle.plugin.com.google.cloud.tools:jib-gradle-plugin:${jibVersion}"
}
}
apply plugin: 'org.springframework.boot'
apply plugin: 'com.google.cloud.tools.jib'
dependencies {
compile('org.springframework.boot:spring-boot-starter-webflux')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile project(":service")
}
/**
* jibの設定 ifで分岐する
*/
jib {
if(project.build == 'product') {
jib {
from {
image = 'adoptopenjdk/openjdk8:alpine'
}
to {
image = 'sample/jib-demo-product-app'
}
container {
jvmFlags = ['-Xms512m', '-Xdebug']
mainClass = 'com.example.demo.DemoApplication'
args = []
ports = ['8080/tcp']
}
}
} else {
jib {
from {
image = 'adoptopenjdk/openjdk8:alpine'
}
to {
image = 'sample/jib-demo-app'
}
container {
jvmFlags = ['-Xms512m', '-Xdebug']
mainClass = 'com.example.demo.DemoApplication'
args = []
ports = ['8080/tcp']
}
}
}
上記のように設定し、gradleコマンドをキックするときに、引数を渡してあげればいい
$ ./gradlew -Pbuild=product
REPOSITORY TAG IMAGE ID CREATED SIZE
sample/jib-demo-product-app latest 4fe1925bb902