2016-01-29 6 views
5

Ich versuche, den Docker-Hub zu verwenden, um automatisch etwas zu erstellen, das lokal gut funktioniert. Es schlägt fehl, zu sagen:Automatischer Dockerhub-Build schlägt fehl, "kein Verzeichnis" beim Hinzufügen der Datei

Build process failed: stat /var/lib/docker/aufs/mnt/1be9db483fa6f3de2596b5261e7c450de8df503185e579278396f14ba179c257/bin/run.sh: not a directory

Sie den Build sich hier ansehen können: https://hub.docker.com/r/zbyte64/rethinkdb-tlsproxy/builds/bjclhq33kgwxxvn6nbfsgyh/

run.sh ist im selben Verzeichnis wie Dockerfile, so scheint es, die Build-Pfad auf dockerhub unterscheidet dann, wo es die speichert Dockerfile.

Ich habe die folgenden Variationen versucht:

COPY run.sh /bin

ADD ./run.sh /bin

+0

Auch versucht 'ADD /run.sh/bin' ohne Glück – zbyte

Antwort

4

Der Befehl COPY (in Dockerhubs Docker-Version) erwartet die Zieldatei auf der rechten Seite, nicht nur das Zielverzeichnis. Der folgende Befehl sollte für Sie selbst auf Dockerhub funktionieren.

COPY run.sh /bin/run.sh 
0

Ich weiß nicht, warum, aber dockerhub will das erste Argument von COPY oder fügen Sie ein Verzeichnis sein - nicht eine Datei . Ich verwende Docker 1.9.1 lokal und das ist nicht der Fall. Ich habe die Dockerfile um ein Ressourcenverzeichnis anstelle von einzelnen Dateien zu kopieren und Dinge begannen zu arbeiten.

1

Oder wenn Sie ADD verwenden möchten, fügen Sie den abschließenden Schrägstrich ein. ADD ./run.sh /bin/

Was passiert eigentlich? Von https://docs.docker.com/engine/reference/builder/#add: HINZUFÜGEN src dest "Wenn dest nicht mit einem abschließenden Schrägstrich endet, wird es als reguläre Datei betrachtet und der Inhalt von src wird in dest geschrieben."

Ohne den abschließenden Schrägstrich in/bin erwartet run.sh ein Verzeichnis, das in Verzeichnis/bin kopiert wird.

Verwandte Themen