Ist es möglich, ein Docker-Bild zu erstellen, ohne es zu drücken?

8

Ich möchte ein Docker-Bild in meiner Pipeline erstellen und dann einen Job darin ausführen, ohne das Bild zu drücken oder zu ziehen.

Ist das möglich?

    
Shawabawa 09.12.2016, 13:04
quelle

1 Antwort

3

Es ist beabsichtigt, Artefakte zwischen Jobs in einer Pipeline nicht zu übergeben, ohne eine Art externe Ressource zu verwenden, um sie zu speichern. Sie können jedoch zwischen Aufgaben in einem einzelnen Job wechseln. Außerdem geben Sie Bilder auf einer Aufgabenebene statt auf einer Jobebene an. Ergo, der einfachste Weg, um das zu tun, was Sie wollen, könnte ein einzelner Job sein, der eine erste Aufgabe hat, das docker-image zu erzeugen, und eine zweite Aufgabe, die ihn als Container-Image verwendet.

In Ihrem Fall würden Sie das Docker-Image in der Build-Aufgabe erstellen und docker export verwenden, um das Dateisystem des Image zu einem rootfs zu exportieren, das Sie in die Ausgabe einfügen können ( my-task-image ). Beachten Sie das bestimmte Schema für die rootfs-Ausgabe, die es abgleichen muss. Sie benötigen rootfs / ... (den extrahierten 'docker export') und metadata.json, die nur ein leeres json-Objekt enthalten können. Sie können sich das Skript in der docker-image-resource ansehen, um weitere Informationen darüber zu erhalten, wie es mit dem Schema übereinstimmt: Ссылка . Dann können Sie in der folgenden Aufgabe den Image-Parameter in Ihrer Pipeline-XML wie folgt hinzufügen:

%Vor%

, um das eingebaute Bild in der Aufgabe zu verwenden.

    
Clara Fu 09.12.2016 17:49
quelle

Tags und Links