#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 Для этого я добавляю несколько снимков экрана