Проблемы с прокси-сервером в 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
аргументы. Это сработало для меня. Надеюсь это поможет. Мне не нужен раздел "переменные", который вы описали выше.