Контейнеру Maven / Gradle не удается построить проект на внутреннем кластере k8s - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь создать пример конвейера 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

1 Ответ

0 голосов
/ 09 июля 2019

Наконец-то я нашел решение.Я монтировал секретный том в каталог / tmp /, и поэтому весь контейнер перешел в режим READ ONLY FILE SYSTEM .Я до сих пор не знаю, почему каталог рабочей области jenkins перешел в режим только для чтения , поскольку я смонтировал секрет в каталоге / tmp .

...