From 2a2fcdb13381f4b8266a3430c67507f01294dd66 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Mon, 23 Jul 2018 17:51:55 -0700 Subject: Include git commit hash in docker image tags (#5) * Include git commit hash in docker image tags * Add timestamp and make git commit optional --- src/main/scala/xyz.driver.sbt/Service.scala | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/scala/xyz.driver.sbt/Service.scala b/src/main/scala/xyz.driver.sbt/Service.scala index a0186e6..3854876 100644 --- a/src/main/scala/xyz.driver.sbt/Service.scala +++ b/src/main/scala/xyz.driver.sbt/Service.scala @@ -1,17 +1,11 @@ package xyz.driver.sbt import com.typesafe.sbt.GitPlugin.autoImport._ -import com.typesafe.sbt.packager.Keys.{ - dockerBaseImage => _, - dockerCommands => _, - dockerExposedPorts => _, - dockerRepository => _, - dockerUpdateLatest => _, - _ -} +import com.typesafe.sbt.packager.Keys._ import com.typesafe.sbt.packager.archetypes.JavaAppPackaging -import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport._ +import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport.Docker import com.typesafe.sbt.packager.docker.{Cmd, DockerPlugin} +import java.time.Instant import sbt.Keys._ import sbt.{Def, _} import sbtbuildinfo.BuildInfoPlugin @@ -41,6 +35,9 @@ object Service extends AutoPlugin { dockerRepository := Some("gcr.io/driverinc-sandbox"), dockerUpdateLatest := true, // automatically update the latest tag dockerBaseImage := "openjdk:10", + dockerLabels := Map( + "build.timestamp" -> Instant.now().toString + ) ++ git.gitHeadCommit.value.map("git.commit" -> _), dockerCommands := dockerCommands.value.flatMap { // @see http://blog.codacy.com/2015/07/16/dockerizing-scala/ case cmd @ Cmd("FROM", _) => cmd :: customCommands.value.map(customCommand => Cmd("RUN", customCommand)) case other => List(other) @@ -64,7 +61,8 @@ object Service extends AutoPlugin { crossScalaVersions := List("2.12.6"), scalaVersion := crossScalaVersions.value.last, publish := { - streams.value.log.warn(s"Service ${name.value} won't be published.") + streams.value.log + .warn(s"Project ${name.value} is a service and will therefore not be published to an artifactory.") } ) -- cgit v1.2.3