Я использую конвейер Gitlab CI / CD и пытаюсь заставить работу publi sh работать.
Моя сеть защищена политикой компании, поэтому мне нужно использовать Proxy. У меня есть настройки прокси для моего Docker. И это работает хорошо, пока docker build
работа не будет выполнена.
Моя работа publi sh выглядит следующим образом:
publish_test:
stage: publish
image: docker:19.03.1
only:
- test
services:
- docker:19.03.1-dind
variables:
IMAGE: ${IMAGE}
before_script:
- mkdir tmp
- cp docker/Dockerfile build/libs/backend_v2-*.jar tmp
- cd tmp
- echo ${CI_REGISTRY_PASSWORD} | docker login ${CI_REGISTRY} -u ${CI_REGISTRY_USER} --password-stdin
script:
- docker pull ${IMAGE} || true
- docker tag ${IMAGE} ${IMAGE}-backup || true
- docker push ${IMAGE}-backup || true
- echo $CI_REGISTRY
- docker build -t ${IMAGE} .
- docker push ${IMAGE}
cache:
key: ${CI_COMMIT_REF_NAME}
policy: pull
paths:
- build/
Проблема здесь: docker build -t ${IMAGE} .
Он не может вытянуть Docker изображение из-за ошибки соединения:
Step 1/4 : FROM azul/zulu-openjdk-alpine:11
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
ERROR: Job failed: exit code 1
До сих пор я пробовал несколько решений, ни одно из которых не сработало для меня:
1. Попытался добавить прокси-переменные в переменные Gitlab и поместить прокси-конфиги в эту работу следующим образом:
- export http_proxy=${HTTP_PROXY};
- export https_proxy=${HTTP_PROXY};
- export no_proxy=${NO_PROXY};
Пытался использовать
build-arg
параметры:
docker build --progress --build-arg ${HTTP_PROXY} --build-arg ${HTTPS_PROXY} --build-arg ${NO_PROXY} -t ${IMAGE} .
Я нашел свой случай в Gitlab Docs -
https://docs.gitlab.com/runner/configuration/proxy.html#proxy -settings-when-using-dind-service . Пытался следовать инструкциям там, это не сработало.
Как я могу заставить его работать на меня? Мне нужно настроить параметры прокси для этого Docker задания сборки, чтобы оно могло вытянуть необходимый Docker образ. Любая помощь приветствуется.