Проблемы с прокси-сервером в Gitlab CI с использованием Docker runner

Я хочу упаковать свое приложение Maven/Java в Docker Gitlab CI.

Я за корпоративным прокси. Это мой .gitlab-ci.yml:

image: maven:3-jdk-7

build:
  script: "mvn clean package -B"

Когда сработает сборка, я получаю эту ошибку (в консоли сборки Gitlab):

Неизвестный узел repo.maven.apache.org: имя или услуга неизвестны → [Справка 1]

Затем я добавил

variables:
  http_proxy: http://user:[email protected]:port

до .gitlab-ci.yml. Но я получаю еще одну ошибку:

фатальный: невозможно получить доступ 'http://gitlab-ci-token:[email protected]:8080/myapp.git/': Запрашиваемый URL возвратил ошибку: 504

Когда я зарегистрировал бегун Docker, выбранное изображение Docker было maven:3-jdk-7.

Я только что попробовал добавить переменную no_proxy с 172.20.20.20 как значение (Gitlab IP), но я получаю ту же ошибку (первый).

Как я могу это решить? Есть ли способ заставить бегун Docker (контейнер) использовать --net=host?

Ответ 1

Что я сделал, мне пришлось открыть документ mvnw. Внутри этого я нашел эту строку

MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"

В промежутке между ')' и $MAVEN_OPTS я разместил

-Dhttps.proxyHost=yourHost -Dhttps.proxyPort=yourPort

аргументы. Это сработало для меня. Надеюсь это поможет. Мне не нужен раздел "переменные", который вы описали выше.