如何为 sbt native packager 的 DockerPlugin 设置基础镜像?

Posted

技术标签:

【中文标题】如何为 sbt native packager 的 DockerPlugin 设置基础镜像?【英文标题】:How to set base image for DockerPlugin of sbt native packager? 【发布时间】:2018-05-18 03:21:09 【问题描述】:

我想 dockerify 一个 Scala 应用程序。

我使用sbt-native-packager,并且在本地构建图像时通过

sbt docker:publishLocal

我惊讶地发现它会使用:

openjdk:latest

作为它的基础镜像。

我喜欢将我的 docker 镜像指向某个版本,并且我知道我的应用程序当前需要 Java 8 并且会在 Java 9 上崩溃;并且latest 标记可能指向未来的新主要版本。

我对 Docker 插件如何通过 sbt-native-packager 工作感到有些困惑。为什么它使用openjdk:latest 作为它的基础?如何将其设置为不同的值,例如:openjdk/8-jdk

【问题讨论】:

【参考方案1】:

您可以通过以下方式在 build.sbt 中设置 baseImage 及其标签:

dockerBaseImage := "openjdk:8-jdk"

您可以在docker documentation of the sbt native packager 中了解此内容。

【讨论】:

以上是关于如何为 sbt native packager 的 DockerPlugin 设置基础镜像?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 appJS/appJVM 交叉构建项目运行 scala sbt-native-packager

如何为使用 sbt native packager 构建的应用程序指定 java.library.path?

Scala SBT - sbt-native-packager,如何指定自定义阶段目录

如何在多个项目中使用 sbt-native-packager

SBT - 如何为特定任务禁用插件(例如“包”)

Scala - SBT - sbt-native-packager - 保留 `stage` 目录的内容