【问题标题】:Build docker image including version with bitbucket pipelines构建 docker 镜像,包括带有 bitbucket 管道的版本
【发布时间】:2018-02-01 12:46:56
【问题描述】:

我对 Bitbucket Pipelines 还很陌生,但遇到了一个问题。我正在创建一个管道以将新版本的 Spring Boot 应用程序(在 Kubernetes 集群中运行)部署到我们的测试环境。我遇到的问题是我们的 docker build 的版本控制。我们的版本设置如下:

alpha_0.1
alpha_0.2
beta_1.0
gamma_1.0
gamma_1.1

因此,每个次要更新/错误修复都会将内部版本号增加 0.1,而主要更新会将版本号增加 1.0 + 每个主要更新都会获得一个新的版本名称。

目前我有下一个设置:

image: java:8

options:
  docker: true

branches:
  master:
    - step:
        caches:
          - gradle
        script:
          - ./gradlew test
          - ./gradlew build
          - docker build -t <application_name>/<version_name>_<version_number>

在 bitbucket 管道中包含 version_nameversion_number 的最佳方式是什么?到目前为止,我们运行的 ruby​​ 脚本允许用户输入版本编号,但 bitbucket 管道不是交互式的。

【问题讨论】:

    标签: continuous-integration bitbucket bitbucket-pipelines docker-build


    【解决方案1】:

    假设alpha_0.1 等是标签,并且如果提交被标记,则管道运行,您可以像这样获取当前提交的标签:

    TAG=$(git tag --contains $BITBUCKET_COMMIT)
    

    然后您可以使用您喜欢的语言或命令行工具从您获得的标签中创建&lt;version_name&gt;&lt;version_number&gt;。将 export 标记作为 shell 变量以便能够在脚本中使用它可能是有意义的。

    【讨论】:

      【解决方案2】:

      这是我拥有的shippable.yml 文件之一,请随时将其改编为Atlassianpipelines.ymlGradle

      language: java
      jdk:
        - oraclejdk8
      branches:
        only:
          - master
      ...
      build:
        ci:
          # Generates build number
          - BUILD_NUMBER=`git log --oneline | wc -l`
          - echo "Build number':' ${BUILD_NUMBER}"
          # Sets version
          - mvn versions:set -DnewVersion=1.0.${BUILD_NUMBER}
          # Builds and pushes to Docker Hub
          - mvn package
          - docker login -u ${DOCKERHUB_USERNAME} -p ${DOCKERHUB_PASSWD} --email ${DOCKERHUB_EMAIL} https://index.docker.io/v1/
          - mvn -X docker:build -Dpush.image=true
      

      我的项目版本(pom.xml)设置为0-SNAPSHOPT

      这也使用SpotifyMaven插件来构建Docker镜像,而不是docker build -t ...

      【讨论】:

      • 如果您只需要内部版本号,您应该简单地使用预定义的$BITBUCKET_BUILD_NUMBER。 (除非你真的想要 commit 编号——这是你的脚本生成的——而不是 build 编号。)
      猜你喜欢
      • 1970-01-01
      • 2018-06-15
      • 2019-07-09
      • 2020-09-05
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多