扩展 sbt-native-packager (Docker)

Posted

技术标签:

【中文标题】扩展 sbt-native-packager (Docker)【英文标题】:Extending sbt-native-packager (Docker) 【发布时间】:2015-10-03 03:57:01 【问题描述】:

我遇到了 sbt-native-packager 的 Docker 模块的问题。它使用一个(可覆盖的)bash 模板,但是这个模板有 $template_declares 将一些重要的项目信息替换到 bash 文件中。

我的问题是我不能使用 bash——我正在使用busybox,它使用 ash。 sbt 生成的一些东西与 ash 不兼容。特别是 $template_declares 中的代码不兼容,我需要让它生成一些不同的东西。

我看到预定义了 Windows 和 bash“生成器”。如何制作修改 bash 版本的灰生成器?

我当然可以克隆 repo 并制作一个灰生成器,但我希望扩展而不是克隆。我从未扩展过 sbt 插件。这是怎么做到的?

【问题讨论】:

嘿 - 你很久以前问过这个问题 - 要么接受提供的答案之一,澄清你的问题,要么delete it。 【参考方案1】:

自从 OP 首次提出问题以来,情况发生了变化。还有一个AshScriptPlugin,它更适合运行 alpine 的 Docker 容器。

enablePlugin(AshScriptPlugin)

您可以在current docs了解更多信息

【讨论】:

【参考方案2】:

所以问题是bash-script 不兼容,因为busy-box 需要ash 脚本。

您可以简单地override the startscript。只需将内容放在

下的文件中
src/templates/bash-template

并编写您自己的启动脚本。

【讨论】:

以上是关于扩展 sbt-native-packager (Docker)的主要内容,如果未能解决你的问题,请参考以下文章

新贵的 daemonUser 在 sbt-native-packager 中不起作用

Sbt-native-packager 在两台不同的机器上生成两个不同的包

sbt-native-packager,挂钩到 debian 包的生命周期

为啥 sbt-native-packager 不生成 bin 目录?

在 sbt-native-packager 中过滤映射

使用 sbt-native-packager 时的模糊参考