Передайте docker переменные изображения из Makefile в файл .gitlab-ci.yaml - PullRequest
0 голосов
/ 11 марта 2020

Я определил и построил docker изображений, используя скрипт из make-файла, и хотел бы передать изображения в качестве параметров в моем gitlab-ci для дальнейшего анализа. Оба эти файла находятся в одном репозитории проекта на gitlab.

Вот мой код:

Makefile

DOCKER_REGISTRY := registry-link
DOCKER_RELEASE_REPO := repo-name
DOCKER_RELEASE_IMAGE1 := ${DOCKER_REGISTRY}/${DOCKER_RELEASE_REPO}/${DOCKER_IMAGE_NAME1}
DOCKER_RELEASE_IMAGE2 := ${DOCKER_REGISTRY}/${DOCKER_RELEASE_REPO}/${DOCKER_IMAGE_NAME2}

tag: .next-version
    $(eval TAG := v$(shell cat .next-version))

release: tag
    docker build --rm -t ${DOCKER_RELEASE_IMAGE1}:${TAG} -f 1.Dockerfile .
    docker build --rm -t ${DOCKER_RELEASE_IMAGE2}:${TAG} -f 2.Dockerfile .
    docker push ${DOCKER_RELEASE_IMAGE1}:${TAG}
    docker push ${DOCKER_RELEASE_IMAGE2}:${TAG}

.gitlab-ci.yaml

stages:
  - release
  - lint

docker:release:
  stage: release
  script:
    - make release

lint:docker-image
  stage: lint
  image: image-link
  script:
    - /src/lint.sh $DOCKER_RELEASE_IMAGE1
    - /src/lint.sh $DOCKER_RELEASE_IMAGE2

lint.sh

docker pull $1

...checks against $1, image parameter passed...

Как мне go сделать это?

1 Ответ

0 голосов
/ 14 марта 2020

Вы можете заархивировать variables файл и получить его в следующем конвейерном задании.

Обновление до makefile:

...
release: tag
    <docker build and push commands>
    echo "export DOCKER_RELEASE_IMAGE1=${DOCKER_RELEASE_IMAGE1}:${TAG};" >> variables
    echo "export DOCKER_RELEASE_IMAGE2=${DOCKER_RELEASE_IMAGE2}:${TAG};" >> variables

Обновление до .gitlab-ci.yaml

docker:release:
  ...
  artifacts:
    paths:
      - variables

lint:docker-image
  ...
  script:
    - source variables
    - <your lint commands>
...