|
15 | 15 | import sbt._
|
16 | 16 | import Keys._
|
17 | 17 |
|
18 |
| -import com.typesafe.sbt.packager.Keys._ |
19 |
| -import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport.Docker |
20 |
| -import com.typesafe.sbt.packager.docker._ |
| 18 | +import com.typesafe.sbt.SbtNativePackager.autoImport._ |
| 19 | +import com.typesafe.sbt.packager.archetypes.jar.LauncherJarPlugin.autoImport.packageJavaLauncherJar |
| 20 | +import com.typesafe.sbt.packager.docker.{Cmd, DockerPermissionStrategy} |
| 21 | +import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport._ |
| 22 | +import com.typesafe.sbt.packager.linux.LinuxPlugin.autoImport._ |
| 23 | +import com.typesafe.sbt.packager.universal.UniversalPlugin.autoImport._ |
21 | 24 |
|
22 | 25 | // Scoverage plugin
|
23 | 26 | import scoverage.ScoverageKeys._
|
@@ -47,21 +50,36 @@ object BuildSettings {
|
47 | 50 | }
|
48 | 51 | )
|
49 | 52 |
|
50 |
| - lazy val dockerSettings = Seq( |
| 53 | + lazy val dockerSettingsFocal = Seq( |
51 | 54 | Docker / maintainer := "Snowplow Analytics Ltd. <[email protected]>",
|
52 | 55 | Docker / daemonUser := "daemon",
|
53 | 56 | Docker / packageName := "snowplow/snowplow-s3-loader",
|
54 | 57 | dockerBaseImage := "eclipse-temurin:11-jre-focal",
|
55 | 58 | dockerUpdateLatest := true,
|
56 | 59 | )
|
57 | 60 |
|
58 |
| - lazy val lzoDockerSettings = Seq( |
| 61 | + lazy val dockerSettingsDistroless = Seq( |
| 62 | + Docker / maintainer := "Snowplow Analytics Ltd. <[email protected]>", |
| 63 | + dockerBaseImage := "gcr.io/distroless/java11-debian11:nonroot", |
| 64 | + Docker / daemonUser := "nonroot", |
| 65 | + Docker / daemonGroup := "nonroot", |
| 66 | + dockerRepository := Some("snowplow"), |
| 67 | + Docker / daemonUserUid := None, |
| 68 | + Docker / defaultLinuxInstallLocation := "/home/snowplow", |
| 69 | + dockerEntrypoint := Seq("java", "-jar",s"/home/snowplow/lib/${(packageJavaLauncherJar / artifactPath).value.getName}"), |
| 70 | + dockerPermissionStrategy := DockerPermissionStrategy.CopyChown, |
| 71 | + dockerAlias := dockerAlias.value.withTag(Some(version.value + "-distroless")), |
| 72 | + dockerUpdateLatest := false |
| 73 | + ) |
| 74 | + |
| 75 | + lazy val lzoDockerSettingsFocal = dockerSettingsFocal ++ Seq( |
59 | 76 | dockerCommands := {
|
60 | 77 | val installLzo = Seq(Cmd("RUN", "mkdir -p /var/lib/apt/lists/partial && apt-get update && apt-get install -y lzop && apt-get purge -y"))
|
61 | 78 | val (h, t) = dockerCommands.value.splitAt(dockerCommands.value.size-4)
|
62 | 79 | h ++ installLzo ++ t
|
63 | 80 | },
|
64 |
| - dockerAlias := dockerAlias.value.withTag(Some(version.value + "-lzo")) |
| 81 | + dockerAlias := dockerAlias.value.withTag(Some(version.value + "-lzo")), |
| 82 | + dockerUpdateLatest := false |
65 | 83 | )
|
66 | 84 |
|
67 | 85 | // Makes our SBT app settings available from within the app
|
@@ -112,9 +130,18 @@ object BuildSettings {
|
112 | 130 | scalafmtOnCompile := false
|
113 | 131 | )
|
114 | 132 |
|
115 |
| - lazy val commonSettings = basicSettings ++ scalifySettings ++ sbtAssemblySettings ++ dockerSettings ++ addExampleConfToTestCp |
| 133 | + lazy val commonSettings = basicSettings ++ scalifySettings ++ sbtAssemblySettings ++ addExampleConfToTestCp |
| 134 | + |
| 135 | + lazy val mainSettings = commonSettings ++ dockerSettingsFocal ++ Seq( |
| 136 | + name := "snowplow-s3-loader" |
| 137 | + ) |
| 138 | + |
| 139 | + lazy val distrolessSettings = commonSettings ++ dockerSettingsDistroless ++ Seq( |
| 140 | + name := "snowplow-s3-loader" |
| 141 | + ) |
116 | 142 |
|
117 |
| - lazy val lzoSettings = lzoDockerSettings ++ Seq( |
| 143 | + lazy val lzoSettings = commonSettings ++ lzoDockerSettingsFocal ++ Seq( |
| 144 | + name := "snowplow-s3-loader-lzo", |
118 | 145 | Compile / discoveredMainClasses := Seq(),
|
119 | 146 | Compile / mainClass := Some("com.snowplowanalytics.s3.loader.lzo.Main")
|
120 | 147 | )
|
|
0 commit comments