У меня есть проект с автоматическими сборками 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?