2016-12-09 3 views

Antwort

3

Es ist von Entwurf, dass Sie keine Artefakte zwischen Jobs in einer Pipeline übergeben können, ohne eine 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 Erstellungsaufgabe erstellen und docker export verwenden, um das Dateisystem des Image zu einem rootfs zu exportieren, das Sie in die Ausgabe (my-task-image) einfügen können. 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 zur Übereinstimmung mit dem Schema zu erhalten: https://github.com/concourse/docker-image-resource/blob/master/assets/in. Dann in der nachfolgenden Aufgabe, können Sie die Bildparameter in Ihrer Pipeline yml als solche hinzufügen:

- task: use-task-image 
    image: my-task-image 
    file: my-project/ci/tasks/my-task.yml 

, um die integrierte Bild in der Aufgabe zu verwenden.

+0

Ich habe versucht, dies zu tun, aber ich bekomme keine Aufgabe, um das Bild erfolgreich zu erstellen. Soweit ich weiß, müssen Aufgaben in Docker laufen, was bedeutet, dass es Docker Build innerhalb Docker ausführen muss, die ich nicht geschafft habe zu erarbeiten – Shawabawa

+0

Sie möchten vielleicht ein [tutorial] (http: // engineering. pivellent.io/post/concourse-docker-image-resource-cache-tutorial/) wir schrieben auf die 'docker-image-resource'. – materialdesigner

+4

Wieder das schiebt das Bild. Ich möchte in der Lage sein, einen Andock-Container zu erstellen und es zu verwenden * ohne * drängen – Shawabawa

Verwandte Themen