import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġapplication ĊĠĠĠ Ġjava ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 3 . 3 1 " ĊĠĠĠ Ġid (" com . google . cloud . tools . j ib ") Ġversion Ġ" 2 . 3 . 0 " Ċ } Ċ Ċ group Ġ= Ġ" dev . pe ter ev ans " Ċ version Ġ= Ġ" 0 . 1 " Ċ val Ġbuild Number Ġby Ġextra (" 0 ") Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġj center () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġval Ġkotlin Version Ġ= Ġ" 1 . 3 . +" ĊĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ", Ġkotlin Version )) ĊĊĠĠĠ Ġval Ġk tor Version Ġ= Ġ" 1 . 2 . +" ĊĠĠĠ Ġimplementation (" io . ktor : ktor - server - core :$ ktor Version ") ĊĠĠĠ Ġimplementation (" io . ktor : ktor - server - netty :$ ktor Version ") ĊĠĠĠ Ġtest Implementation (" io . ktor : ktor - server - test - host :$ ktor Version ") ĊĠĠĠĠĊĠĠĠ Ġimplementation (" org . slf 4 j : slf 4 j - api : 1 . 7 .+ ") ĊĠĠĠ Ġimplementation (" ch . qos . log back : log back - classic : 1 . 2 .+ ") ĊĊĠĠĠ Ġval Ġjunit Version Ġ= Ġ" 5 . 3 . +" ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter : junit - jupiter - api :$ junit Version ") ĊĠĠĠ Ġtest Runtime Only (" org . junit . jupiter : junit - jupiter - engine :$ junit Version ") ĊĠĠĠ Ġtest Implementation ( kotlin (" test - junit 5 ", Ġkotlin Version )) Ċ } Ċ Ċ dependency Lock ing Ġ{ ĊĠĠĠ Ġlock All Configurations () Ċ } Ċ Ċ application Ġ{ ĊĠĠĠ Ġmain ClassName Ġ= Ġ" dev . pe ter ev ans . web service . Server Kt " Ċ } Ċ Ċ j ib Ġ{ ĊĠĠĠ Ġto Ġ{ ĊĠĠĠĠĠĠĠ Ġimage Ġ= Ġ" pe ter ev ans / web service " ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġset Of ("$ version ", Ġ"$ version .${ extra [" build Number "] }") ĊĠĠĠĠĠĠĠ Ġauth Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠSystem . getenv (" DOCKER HUB _ USERNAME ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠSystem . getenv (" DOCKER HUB _ PASSWORD ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcontainer Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" maintainer " Ġto Ġ" P eter ĠEv ans Ġ< mail @ pe ter ev ans . dev >", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . title " Ġto Ġ" web service ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . description " Ġto Ġ" An Ġexample Ġweb service ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . version " Ġto Ġ"$ version ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . authors " Ġto Ġ" P eter ĠEv ans Ġ< mail @ pe ter ev ans . dev >", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . url " Ġto Ġ" https :// github . com / pe ter - ev ans / kotlin - ktor - j ib ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . vendor " Ġto Ġ" https :// pe ter ev ans . dev ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . opencontainers . image . licenses " Ġto Ġ" MIT " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġj vm Flags Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- server ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- D java . awt . headless = true ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX : Initial RAM Fraction = 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX : Min RAM Fraction = 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX : Max RAM Fraction = 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX :+ Use G 1 GC ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX : Max GCP ause Millis = 1 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- XX :+ Use String Ded up lication " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġ"/ web service " ĊĠĠĠĠĠĠĠ Ġports Ġ= ĠlistOf (" 8 0 8 0 ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġwith Type < Kotlin Compile > Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" test "( Test :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuse JUnit Platform () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġnamed < Java Exec >(" run ") Ċ } Ċ