2016-12-06 3 views
0

Hat jemand jemals erfolgreich ein Bild mit folgendem Befehl erstellt?Bild mit dockerfile erstellen

curl -v -X POST \ 
-H "Content-Type:application/tar" \ 
http://52.212.221.156:2375/build?t=samplerepo&dockerfile="C:\Dockerfile.tar.gz" 

Obwohl Datei auf der angegebenen Stelle ist, folge ich immer Fehler

{"message":"Cannot locate specified Dockerfile: Dockerfile"} 

Oder wenn überhaupt jemand es mit remote Parameter getan hat, helfen Sie bitte

Antwort

1

Zum einen finden Dokumentation Docker API und gehen durch alle Abfrageparameter https://docs.docker.com/engine/api/v1.25/#operation/ImageBuild.

Es gibt drei Wege ein Bild mit dockerfile

  1. Mit Hilfe einer Remote-URL zu erstellen, die Ihre dockerfile im tar-Format hat

    curl -X POST "http://localhost:5000/build?remote=https://raw.githubusercontent.com/abha10/FirstGitProj/master/Dockerfile.tar"

  2. Remote-URL sowie dockerfile Verwendung Kontextpfad

    curl -X POST "http://localhost:5000/build?dockerfile=Tomcat/config/Dockerfile&remote=https://raw.githubusercontent.com/abha10/FirstGitProj/master/Tomcat.tar"

  3. Folgendes ist nicht in ihrem offiziellen Dokument verfügbar, funktioniert aber gut, wenn Sie Ihre Dockerfile lokal haben.

    curl -X POST -H "Content-Type:application/tar" --data-binary '@Dockerfile.tar.gz' "http://localhost:5000/build?tag=tomcat"

1

Die Abfrageparameter dockerfile soll auf die Dockerfile im Buildkontext zeigen, dh mit dem tar-Archiv, das Sie zusammen mit der Anfrage posten.

Angenommen, der unten gezeigte Struktur im Archiv

payload.tar.gz 
    -- config 
     -- Dockerfile 
    -- src 
    -- temp 

Then your query parameter "dockerfile" shall hold config/Dockerfile. 

Sicherstellen, dass Sie Teer Nutzlast zusammen mit der Anforderung senden.

folgende Befehl erstellt ein Bild auf der lokalen Umgebung über Docker Remote API

curl -v POST -H "Content-Type: application/tar" --data-binary @Dockerfile.tar.gz --unix-socket /var/run/docker.sock http:/build?t=sample 
+0

In * Verbrauch: \t Andockfensters build [Optionen] PATH * bezieht sich auf die PATH build Kontext. Wenn wir * docker build -t . * Verwenden, ist das aktuelle Verzeichnis der Buildkontext. Im Fall der Remote-API senden wir diesen Build-Kontext als tar-Archiv, wenn er remote ausgeführt wird. Daher muss sich Ihre Andockdatei im Stammverzeichnis dieses Archivs befinden und das tar-Archiv muss als Teil dieser Anfrage gesendet werden. Falls sich Dockerfile nicht im Stammverzeichnis des Archivs befindet und unter einem Verzeichnis im Archiv platziert ist, kann es über den Abfrageparameter "dockerfile" angegeben werden. – Yuva

+0

ok, also das der curl-Befehl habe ich versucht 'curl -v -X POST -H" Content-Typ: Anwendung/tar "http://52.210.66.125:2375/build?t=sampleRepo&dockerfile="C:/payload .tar "' Und die Ordnerstruktur ist 'Nutzdaten> Dockerfile'. Immer noch nicht in der Lage, es zum Laufen zu bringen. – Abhaya

+0

'curl -v POST -H" Inhaltstyp: application/tar "--data-binary @ archiv.tar.gz http: //52.210.66.125: 2375/build? T = samperepo' – Yuva

Verwandte Themen