проблема с объемом docker в шагах jenkins

#docker #jenkins #jenkins-pipeline

#docker #дженкинс #дженкинс-конвейер

Вопрос:

На этапе и шагах jenkins я пытаюсь создать образ; запустите контейнер с томом, а затем сохраните файл, чтобы после этого его восстановить.
Но, к сожалению, это не создает объем и не сохраняет его.

Вот код Дженкинса

 stage('Android') {
          agent {
            label buildLabel()
          }
          steps {
            checkout scm
            sh '''
              mkdir -p `pwd`/build_target
              docker build -t android_build -f docker/Dockerfile.android .
              docker run --rm -v `pwd`/build_target:/home/gradle/reactapp/android/app/build/outputs/apk/ android_build
              ls -la `pwd`/build_target/*
            '''
            stash includes: 'build_target/app-release.apk', name: 'apk'
            androidApkUpload apkFilesPattern: '**/app-release.apk', googleCredentialsId: 'jenkins_apk_upload', trackName: 'internal'
          }

        }
  

Комментарии:

1. Каков результат docker build ? Кроме того, помните, что контекст для сборки docker — это то, где находится файл Dockerfile. Это означает, что все, что находится в родительском каталоге вашего каталога ‘docker’, не будет частью контекста сборки и не будет доступно для docker build.

2. Привет @Alkaline. Вывод файла dockerfile — это apk (Android). Вы сказали, что он не будет доступен, даже если с томом?

Ответ №1:

Моим решением было бы настроить ENV в глобальных свойствах на http://jenkins-server/configure . введите описание изображения здесь

В скрипте сборки я могу использовать env для получения общего пути на хосте. введите описание изображения здесь

И на всех хостах агента я подключаю к нему один и тот же путь NFS. mount -t nfs 10.6.188.1:/root /root/pacotest1 на каждом узле

Комментарии:

1. У вас есть какой-нибудь пример? Потому что я действительно не вижу, в чем разница с stash / unstash

2. @YoussefHarkati Для этого я добавляю несколько снимков экрана