扩展 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 包的生命周期