Как указать значение тега docker версии изображения с любой переменной среды в CircleCI - PullRequest
0 голосов
/ 09 июля 2020

Я хочу знать, как указать произвольное изображение docker при построении с помощью circleCI. В частности, тег должен преобразовывать буквенно-цифровые c символы выдвинутого имени ветки в дефисы «-». Например, если вы отправили sh в GitHub с именем ветки feature/hoge_fuga, его необходимо преобразовать в feature-hoge-fuga.

Этот yaml является образцом конфигурационного файла CircleCI. Посмотрите на строку 5.

version: 2
jobs:
  build:
    docker:
      - image: circleci/<language>:feature-hoge-fuga  # <----- I want to do this
    steps:
      - checkout
      - run: <command>
  test:
    docker:
      - image: circleci/<language>:<version TAG>
    steps:
      - checkout
      - run: <command>
workflows:
  version: 2
  build_and_test:
    jobs:
      - build
      - test

Во-первых, я придумал способ использовать переменную окружения $ CIRCLE_BRANCH.

echo 'export DOCKER_IMAGE_TAG=$(echo $CIRCLE_BRANCH | sed -e "s/[^a-z0-9]/-/g")' >> $BASH_ENV

Таким образом я получил имя идеального тега.

Есть ли способ сделать это до указания тега для изображения docker? Затем я могу использовать переменные среды, чтобы указать это:

version: 2
jobs:
  build:
    docker:
      - image: circleci/<language>:$DOCKER_IMAGE_TAG
    steps:
      - checkout
      - run: <command>
...

Как я могу таким образом достичь своих идеалов? Если это практически невозможно, как достичь моего идеала? Не могли бы вы придумать что-нибудь хорошее?

Извините за мой плохой английский Спасибо!

...