Jenkins Pipeline и Docker - как архивировать файлы из контейнера - PullRequest
0 голосов
/ 22 мая 2018

Согласно Документам о трубопроводе Jenkins , я должен иметь возможность использовать шаги конвейера при работе с Docker.Однако « archiveArtifacts » не работает:

    def container = docker.image("some_image")
    container.inside {
        sh 'date > /tmp/test.txt'
        sh 'cat /tmp/test.txt' //works, shows file

        def fileContents = readFile '/tmp/test.txt' //works
        echo "Contents: ${fileContents}" //works, shows file

        archiveArtifacts '/tmp/*.txt' //FAILS
    }

" ERROR : не найдено артефактов, соответствующих шаблону файла" /tmp/*.txtMsgstr "Ошибка конфигурации?"

То, что я пробовал:

  • Добавление sync и sleep (5) перед этапом архивирования на случай, если это проблема с синхронизацией файлов.
  • Попытка архивирования'/ *' и '*', если он запущен на хосте (та же ошибка).

Есть предложения по архивированию файлов, генерируемых в контейнере Docker?

PS: я открыл сообщение об ошибке ... Похоже, что archiveArtifacts будет работать только с файлами в $ WORKSPACE в док-контейнерах.

1 Ответ

0 голосов
/ 11 сентября 2018

Вы, похоже, нашли решение, о котором сообщалось в тот же билет Jira , поэтому я опубликую здесь для всех:

это прекрасно работает:

def image = docker.image("alpine")
 image.inside { 
   sh 'date > /tmp/test.txt'
   sh "cp /tmp/test.txt ${WORKSPACE}"
   archiveArtifacts 'test.txt'
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...