Я тестирую трубопроводы непрерывной доставки с помощью GoCD. Сервер и агент живут в отдельных контейнерах Docker, поставляемых с Oracle Java 8.
Я установил тестовую задачу, которая проверяет мой репозиторий Git и использует maven для компиляции. В качестве тестовой команды я использую простой mvn clean build
.Агент GoCD не распознает переменную окружения JAVA_HOME
Когда я начинаю задачу, я получаю следующий результат неудачной сборки:
07:50:59.395 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project xxxxx: Compilation failure 07:50:59.395 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
Когда я запускаю команду mvn
локально внутри контейнера все работает отлично. После долгого времени поиска решения я нашел подсказки, связанные с проблемами с переменными среды Java и Maven. На обеих системах, выход для этих переменных кажется правильным:
[email protected]:/tmp$ echo $M2_HOME $JAVA_HOME /usr/share/maven /usr/lib/jvm/java-8-oracle
Окончательное решение, которое я закончил с устанавливает переменную $JAVA_HOME
в качестве переменной окружения на сервере GoCD в качестве установки трубопровода. Тогда все работает нормально, но я действительно не понимаю, почему системные переменные не подхвачены агентом.
Хотя он не должен работать (Go Version: 16.6.0) –