package Ġdev . wh yo leg . k amp . pack ager Ċ Ċ import Ġcom . google . cloud . tools . j ib . gradle .* Ċ import Ġdev . wh yo leg . k amp . plugin .* Ċ import Ġdev . wh yo leg . k amp . plugin . Plugin Ċ import Ġorg . gradle . api .* Ċ Ċ @ Suppress (" Un stable Api Usage ") Ċ class ĠDocker Pack ager Ġ: ĠPack ager Ġ{ ĊĠĠĠ Ġvar Ġbase Image : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġimage : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġj dk : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtags : ĠSet < String > Ġ= Ġempty Set () ĊĠĠĠ Ġvar Ġports : ĠSet < String > Ġ= Ġempty Set () ĊĠĠĠ Ġvar Ġversion Tag : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġvar Ġlatest Tag : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġvar ĠclassName : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġj vm Flags : ĠList < String > Ġ= Ġempty List () ĊĠĠĠ Ġvar Ġraw : ĠJ ib Extension . () Ġ-> ĠUnit Ġ= Ġ{} ĊĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- server ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- D java . awt . headless = true ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX :+ Unlock Experimental VM Options ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX :+ Use G 1 GC ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX : Max GCP ause Millis = 1 0 0 ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX :+ Use String Ded up lication ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- D java . library . path =\" / app / libs :\ ${ PATH }\ "" Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġplugins : ĠSet < Plugin > Ġ= Ġset Of ( BuiltIn Plugins . docker ) ĊĊĠĠĠ Ġoverride Ġfun ĠProject . configure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Name Ġ= Ġpath . replace (" :", Ġ"- "). drop ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġimage Name Ġ= Ġimage Ġ?: Ġi Name ĊĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġi Name . replace ("- ", Ġ". ") ĊĠĠĠĠĠĠĠ Ġval Ġmain ClassName Ġ= ĠclassName Ġ?: Ġ"$ group .$ packageName . App Kt " ĊĠĠĠĠĠĠĠ Ġval Ġdocker Image Ġ= Ġbase Image Ġ?: Ġ" ad opt openjdk / openjdk $ jdk : alpine - slim " ĊĠĠĠĠĠĠĠ Ġextensions . configure < J ib Extension >(" j ib ") Ġ{ Ġj ib Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ib . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . image Ġ= Ġdocker Image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . image Ġ= Ġimage Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtags Ġ= Ġmutable Set Of < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ+= Ġthis @ Docker Pack ager . tags ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( version Tag ) Ġtags Ġ+= Ġversion . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( latest Tag ) Ġtags Ġ+= Ġ" latest " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . tags Ġ= Ġtags ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . ports Ġ= Ġports . toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . main Class Ġ= Ġmain ClassName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . use Current Timestamp Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . jvm Flags Ġ= Ġj vm Flags ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw ( j ib ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ