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:
, um das eingebaute Bild in der Aufgabe zu verwenden.
Tags und Links concourse