如何解决从命令行
我正在使用SBT来构建Scala应用程序,并且我们正在使用DockerPlugin进行实际的构建。配置看起来像这样:
.enablePlugins(PlayScala,PlayAkkaHttp2Support,DockerPlugin)
.in(...)
.settings(name := "...")
.settings(version := VERSION)
...
.settings(dockerUpdateLatest := true)
因此,我从CI服务器(在本例中为CircleCI)运行sbt docker:publish
。但这会构建一个版本并将其发布到我们的Docker存储库中。事情是我们同时在develop
和master
上运行它。 Develop带有后缀-SNAPSHOT
,但都将其版本化的Docker映像作为最新标记推送。
最后一件事是我不想要的东西,对于管理员,我想进行构建(例如1.5.3并将其推到最新版本(因为这是我的最新稳定版本)),而不是进行开发。因此,我想将.settings(dockerUpdateLatest := false)
设置为不自动更新,但是在我的master
构建中,在命令行上配置一些东西来触发/更改该设置。
那是可行的,有人可以告诉我外观或外观吗?
谢谢!
解决方法
您可以使用Java系统属性。
dockerUpdateLatest :=
sys.props.getOrElse("myproject.dockerUpdateLatest","false").toBoolean
然后您像这样启动sbt:
sbt -J-Dmyproject.dockerUpdateLatest=true docker:publish
但是我认为一个更优雅的解决方案是只检查您正在构建的版本是否为快照版本。
dockerUpdateLatest := ! isSnapshot.value
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。