scala - 如何在发布过程中通过sbt-release推送/构建docker镜像

标签 scala docker sbt sbt-release sbt-docker

我是scala的新手。

我使用sbt-release控制发布过程,并使用sbt-docker构建/发布docker镜像。

我可以通过sbt release发布特定版本,并通过sbt docker或`sbt dockerBuildAndPush'构建/发布docker镜像。

如果我想发布特定版本,我需要

  • 执行sbt release
  • 记住发布版本,并使用发布版本
  • 修改docker image标签
  • 执行sbt dockerBuildAndPush

  • 但这很乏味...

    我想将构建/发布docker镜像添加到发布过程中。

    例如:

    我用build.sbt定义发布过程
    val publishDocker = ReleaseStep(action = st => {
      // 1. get release version from sbt-release
      // 2. add release version to docker image tag
      // 3. push docker image to aws ecr
    })
    
    releaseProcess := Seq[ReleaseStep](
      checkSnapshotDependencies,            
      inquireVersions,                      
      runTest,                                
      setReleaseVersion,                     
      commitReleaseVersion,                   
      tagRelease,                            
      publishDocker,                      
      setNextVersion,                        
      commitNextVersion,                      
      pushChanges                            
    )
    

    但是我不知道如何实现publishDocker功能。

    谢谢你的帮忙〜

    最佳答案

    @ed感谢您的建议,我自己解决了:>

    这是我的sbt:https://gist.github.com/pandaforme/e378dc3f1f32aa252b14e40937491e9c

    我只执行sbt release,它将自动编译,生成发行版本,构建和推送docker镜像等。

    关于scala - 如何在发布过程中通过sbt-release推送/构建docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37418201/

    相关文章:

    Scala groupby 元组

    python - Docker容器入口点在挂载卷中没有此类文件错误

    python - ModuleNotFoundError : No module named 'argon2._ffi' in docker

    sbt - 如何在多模块项目中通过 sbt 调用 npm

    sbt - 在 SBT 中更改给定目录中的任何文件时运行任务?

    scala - 在 SBT 中为模块依赖项使用自定义类加载器

    java - AWS EMR java sdk - withKeepJobFlowAliveWhenNoSteps

    scala - 如何将 scalaz.EitherT.fromEither 应用于 scalaz.\/?

    scala - 玩!框架 - build.sbt 和 Build.scala

    audio - Docker:JACK 服务器未运行