OpenShift BuildConfig Docker strategy spe c .output.to.name с использованием переменной среды для тегирования - PullRequest
0 голосов
/ 07 августа 2020

Я определил следующий 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

Я бы хотел, чтобы ТЕГ был номером версии, который состоит из версии из приложения package.json и номера Jenkins #build. Поэтому я планирую передать это значение env в командной строке OpenShift start-build, используя параметр -e. Однако при применении определения BuildConfig он жалуется, что name is not a valid Docker pull specification: invalid reference format. Как использовать переменную для указания строкового значения тега изображения? Приветствуются любые советы и идеи.

1 Ответ

1 голос
/ 16 августа 2020

К сожалению, это невозможно при использовании одного BuildConfig. Часть output оценивается во время создания объекта, ваша среда контейнера сборки не может установить этот тег позже.

Вместо этого вы можете использовать Template, создав BuildConfigs для тега earch, который вам нужен для сборки.

Или, предполагая OpenShift 4+, вы можете заглянуть в Tekton. Объект Pipeline допускает общие определения сборки c, хотя по-прежнему требует создания PipelineResources для каждого тега изображения, а также git ссылки на источник

...