Автоматическая сборка DockerHub для запроса извлечения GitHub - с помощью переменной $ DOCKER_TAG? - PullRequest
1 голос
/ 26 марта 2019

У меня есть проект с автоматическими сборками DockerHub для каждой ветви проекта.Эти сборки работают хорошо.

Я хотел бы расширить эту конфигурацию автоматической сборки, чтобы создавать образы для выбранных запросов на получение запросов для этих ветвей.

enter image description here

Следующая документация указывает на то, что переменная с именем DOCKER_TAG должна быть доступна в автоматической сборке DockerHub.

https://docs.docker.com/docker-hub/builds/advanced/#environment-variables-for-building-and-testing

Я хочу настроить автоматическую сборку следующим образом.

Если я попытаюсь создать тег с именем «pr1234», моя сборка будет перекрывать код из PR # 1234 перед запуском сборки.

# Assign the env variable DOCKER_TAG to an arg of the same name
ARG DOCKER_TAG=${DOCKER_TAG}

...

# if DOCKER_TAG is in the format prNNNN then merge code for that PR on top of the current branch
RUN PRNUM=`echo ${DOCKER_TAG}| egrep "^pr([0-9]+)$" | sed -e s/pr//` && \
    if [ -n "$PRNUM" ]; \ 
    then echo "Merging $PRNUM"; \
      curl -o /tmp/pr.patch -L https://github.com/DSpace/DSpace/pull/$PRNUM.diff; \
      git apply /tmp/pr.patch; \
    fi

Если я запускаю свою сборку локально, я могу установитьэта переменная и моя сборка докера выполняется так, как мне хотелось бы.

docker build -t dspace/dspace:pr1234 -f Dockerfile.jdk8-test --build-arg DOCKER_TAG=pr1234 .

Когда я пытаюсь запустить это из Dockerhub, переменная DOCKER_TAG кажется пустой, поэтому я предполагаю, что DOCKER_TAG не устанавливается, как я ожидал.

Можете ли вы предложить способ доступа к этой переменной или выполнить автоматическую сборку для выбранных PR?

1 Ответ

2 голосов
/ 26 марта 2019

Я нашел решение, которое, кажется, работает. Я создал хук сборки с именем hooks / build и явно передал переменную.

#!/bin/bash
docker build --build-arg DOCKER_TAG=$DOCKER_TAG -f $DOCKERFILE_PATH -t $IMAGE_NAME .

См. https://docs.docker.com/docker-hub/builds/advanced/#custom-build-phase-hooks

...