Я пытаюсь создать пример конвейера jenkins для создания приложения на основе maven / gradle на внутреннем кластере kubernetes. Я настроил прокси через переменную окружения, кроме того, я вставил параметры прокси в файл gradle.properties. Всякий раз, когда я пытаюсь создать приложение через gradle build
, оно завершается с ошибкой Java: READ ONLY FILE SYSTEM
. Я искал в Интернете и обнаружил, что из-за различных UID в jnlp
и gradle
контейнере, Gradle
не может получить доступ к /home/jenkins/
рабочему пространству. Я вставил параметр Pod Security Policy
в модуль и попытался выполнить все контейнеры с тем же идентификатором UID 1000
, но это не удалось. Я до сих пор не знаю точную причину этой странной проблемы.
Ссылка: https://akomljen.com/set-up-a-jenkins-ci-cd-pipeline-with-kubernetes/
Я использую Официальную диаграмму управления Дженкинсом для развертывания Дженкинса в кластере.
def label = "maven-${UUID.randomUUID().toString()}"
podTemplate(label: label, containers: [
containerTemplate(name: 'gradle', image: 'gradle:latest', ttyEnabled: true, command: 'cat',
envVars: [
envVar(key: 'http_proxy',value: 'www.xxx:8080'),
envVar(key: 'https_proxy',value: 'www.xxx:8080')
])
]) {
node(label) {
stage('Build a Gradle project') {
git 'SOME GRADLE PROJECT REPO.'
container('gradle') {
sh 'gradle build --stacktrace'
}
}
}
}
Рассмотрим приведенный выше пример (предположим, что jenkinsci/jnlp-slave:latest
будет предоставлен шаблоном Jenkins Default Pod и будет прикреплен к этому модулю)
Запустится Gradle Daemon, а затем произойдет сбой со следующей ошибкой.
Error resolving plugin [id: 'org.springframework.boot', version: '2.1.4.RELEASE']
18:24:47.119 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Could not resolve all dependencies for configuration 'detachedConfiguration1'.
18:24:47.119 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > java.io.IOException: Read-only file system