Автоматическая сборка DockerHub для запроса на вытягивание GitHub — с использованием переменной $DOCKER_TAG?

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

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

введите здесь описание изображения

В следующей документации указано, что переменная с именем 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?


person terrywb    schedule 25.03.2019    source источник


Ответы (1)


Я нашел решение, которое, кажется, работает. Я создал хук сборки с именем 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

person terrywb    schedule 26.03.2019
comment
Спасибо за Ваш ответ. Это помогает мне решить проблему. - person Aisuko; 11.05.2019