0

我已经定义了以下 OpenShift BuildConfig:

<snip>
    output:
      to:
        kind: DockerImage
        name: myregistry.com/myapp:${TAG}
    strategy:
      type: Docker
      dockerStrategy:
        from:
          kind: ImageStreamTag
          name: nodejs-12:latest
          namespace: myproject
        env:
          - name: TAG
            value: latest

我希望 TAG 是一个版本号,它由应用程序的版本package.json和 Jenkins#build号组成。所以我计划使用该选项在 OpenShiftstart-build命令行中传递这个 env 值。-e但是,在应用 BuildConfig 定义时,它会抱怨name is not a valid Docker pull specification: invalid reference format. 如何使用变量指定图像标签字符串值?任何建议和见解都值得赞赏。

4

1 回答 1

1

可悲的是,使用单个BuildConfig. 该output部件在对象创建期间进行评估,您的构建容器环境稍后无法设置该标签。

您可能想要使用 aTemplate来代替,BuildConfigs为您需要构建的每个标签创建。

或者,假设 OpenShift 4+,您可以查看Tekton. 该Pipeline对象允许通用构建定义 - 尽管仍然需要PipelineResources为每个图像标签以及 git source ref 创建。

于 2020-08-16T01:42:44.907 回答