Дженкинс работает докер сохранить в параллельных шагах - PullRequest
0 голосов
/ 13 июня 2019

Я пытался запустить Docker Save после сборки, чтобы сохранить образ Docker в файле .tar

фрагмент скрипта .sh:

#build new docker image
$docker build -f Dockerfile -t "$module":$imageversion .

#creating a copy
$docker save "$module":$imageversion > "$module".tar
ls -al

Я выполняю вышеуказанный скрипт параллельно, чтобы собрать свои модули одновременно:

Jenkinsfile:

pipeline {
    agent {
        label 'DOCKER_BUILD'
    }
    stages {
        stage("Build") {
            parallel {
                stage("Build module foo") {
                    steps {
                        script {
                            sh "chmod +x script.sh"
                            sh """
                               ./script.sh foo 1.0
                            """
                        }
                    }
                }
                stage("Build module bar") {
                    steps {
                        script {
                            sh "chmod +x script.sh"
                            sh """
                               ./script.sh bar 1.0
                            """
                        }
                    }
                }
            }
        }
    }
}

Ниже приведен результат:

Step 1/3 : FROM rhel7.5
 ---> 7b875638cfd8
Step 2/3 : COPY foo /
 ---> 03486e60a155
Removing intermediate container 294374c335e2
Step 3/3 : CMD /foo
 ---> Running in b443c0353f03
 ---> 7cf9cea4eb63
Removing intermediate container b443c0353f03
Successfully built 7cf9cea4eb63

Error response from daemon: open /var/lib/docker/devicemapper/mnt/ea79ca596a1bdf10526762edf47ac439e3a54d3d327ee3b19b9d11e589299298/rootfs/root/buildinfo/Dockerfile-rhel7-7.5-433: no such file or directory

    drwxr-xr-x  3 pdcifadm dcifgrp     4096 Jun 13 17:09 .
    drwxr-xr-x 31 pdcifadm dcifgrp     4096 Jun 13 17:05 ..
    -rwxr-xr-x  1 pdcifadm dcifgrp 15370790 Jun 13 17:07 foo
    -rw-r--r--  1 pdcifadm dcifgrp        0 Jun 13 17:09 module-foo.tar
    -rw-r--r--  1 pdcifadm dcifgrp       74 Jun 13 17:07 Dockerfile
    -rwxr-xr-x  1 pdcifadm dcifgrp      105 Jun 13 17:07 script.sh

Обратите внимание, что файл .tar содержит 0 байтов. Я получил тот же результат при просмотре Build module bar журналов.

Я попытался протестировать больше параллельных сборок и увидел, что docker save иногда в некоторых шагах иногда работает как положено.

Последовательный запуск сборки работает как положено.

Я что-то здесь упускаю? Может быть, проблемы с агентом или рабочей областью?

Заранее спасибо!

Ура!

...