我是斯卡拉的新手。
我使用sbt-release来控制发布过程,并使用sbt-docker来构建/发布docker镜像。
我可以通过Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"
发布特定版本,并通过sbt release
或`sbt dockerBuildAndPush'
如果我想发布特定版本,我需要
sbt docker
sbt release
但这太乏味了......
我想在发布过程中添加构建/发布docker镜像。
例如:
我在sbt dockerBuildAndPush
build.sbt
但我不知道如何实现publishDocker函数。
感谢您的帮助〜
答案 0 :(得分:1)
@ed感谢您的建议,我自己解决了这个问题:>
这是我的亲戚:https://gist.github.com/pandaforme/e378dc3f1f32aa252b14e40937491e9c
我只是执行sbt release
,它会自动编译,生成发布版本,构建和推送泊坞窗图像等。
答案 1 :(得分:0)
在发布过程中发布 Docker 镜像的最简单方法是:
releaseProcess := {
import ReleaseTransformations._
Seq[ReleaseStep](
// ... prev steps
ReleaseStep(releaseStepTask(Docker / publish)),
// ... next steps
)
}
答案 2 :(得分:-1)
我不熟悉sbt-docker
,但您可以从version
参数中获取st: State
:
val publishDocker = ReleaseStep(action = st => {
// 1. get version from sbt
// (it was set by sbt-release in setReleaseVersion)
val extracted = Project.extract(st)
val version:String = extracted.get(sbt.Keys.version)
})