扩展 sbt-native-packager (Docker)
Extending sbt-native-packager (Docker)
我在使用 sbt-native-packager 的 Docker 模块时遇到问题。它使用(可覆盖的)bash 模板,但此模板有 ${{template_declares}} 将一些重要的项目信息替换到 bash 文件中。
我的问题是我无法使用 bash--我正在使用使用 ash 的 busybox。 sbt 生成的一些东西与 ash 不兼容。具体来说,为 ${{template_declares}} 添加的代码不兼容,我需要让它生成一些不同的东西。
我看到预定义了 Windows 和 bash "generators"。如何制作修改bash版本的灰生成器?
我当然可以克隆 repo 并制作灰生成器,但我希望扩展而不是克隆。我从来没有扩展过 sbt 插件。这是怎么做到的?
所以问题是 bash-script
不兼容,因为 busy-box 需要 ash
个脚本。
你可以简单地override the startscript。把内容放到
下的文件里就行了
src/templates/bash-template
并编写您自己的启动脚本。
自 OP 首次提出问题以来,情况发生了变化。还有一个 AshScriptPlugin
更适合 Docker 容器 运行 alpine。
enablePlugin(AshScriptPlugin)
您可以在 current docs
中找到更多信息
我在使用 sbt-native-packager 的 Docker 模块时遇到问题。它使用(可覆盖的)bash 模板,但此模板有 ${{template_declares}} 将一些重要的项目信息替换到 bash 文件中。
我的问题是我无法使用 bash--我正在使用使用 ash 的 busybox。 sbt 生成的一些东西与 ash 不兼容。具体来说,为 ${{template_declares}} 添加的代码不兼容,我需要让它生成一些不同的东西。
我看到预定义了 Windows 和 bash "generators"。如何制作修改bash版本的灰生成器?
我当然可以克隆 repo 并制作灰生成器,但我希望扩展而不是克隆。我从来没有扩展过 sbt 插件。这是怎么做到的?
所以问题是 bash-script
不兼容,因为 busy-box 需要 ash
个脚本。
你可以简单地override the startscript。把内容放到
下的文件里就行了src/templates/bash-template
并编写您自己的启动脚本。
自 OP 首次提出问题以来,情况发生了变化。还有一个 AshScriptPlugin
更适合 Docker 容器 运行 alpine。
enablePlugin(AshScriptPlugin)
您可以在 current docs
中找到更多信息