2016-01-29 19 views
5

Sto tentando di utilizzare l'hub di dock per creare automaticamente qualcosa che si integri bene localmente. Non riesce dicendo:La build automatizzata Dockerhub non riesce, "non una directory" quando si aggiunge il file

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

È possibile visualizzare la costruzione in sé qui: https://hub.docker.com/r/zbyte64/rethinkdb-tlsproxy/builds/bjclhq33kgwxxvn6nbfsgyh/

run.sh è nella stessa directory Dockerfile, sembra che il percorso di generazione in dockerhub è diverso, allora dove memorizza la Dockerfile.

ho provato le seguenti variazioni:

COPY run.sh /bin

ADD ./run.sh /bin

+0

Anche provato 'ADD /run.sh/bin' senza fortuna – zbyte

risposta

4

Il comando COPY (sulla versione Dockerhub's Docker) prevede il file di destinazione sul lato destro, non solo la directory di destinazione. Il seguente comando dovrebbe funzionare anche su Dockerhub.

COPY run.sh /bin/run.sh 
0

Non so perché, ma dockerhub vuole che il primo argomento di COPIA o aggiungere ad essere una directory - non è un file . Sto facendo funzionare Docker 1.9.1 localmente e quello non è il caso. Ho cambiato Dockerfile per copiare una directory di risorse anziché singoli file e le cose hanno iniziato a funzionare.

1

Oppure se si desidera utilizzare ADD, includere la barra finale. ADD ./run.sh /bin/

Che cosa sta realmente accadendo? Da https://docs.docker.com/engine/reference/builder/#add: ADD src dest "Se dest non termina con una barra finale, verrà considerato un file normale e il contenuto di src verrà scritto a destinazione."

Senza la barra finale su/bin, si aspetta che run.sh sia una directory copiata in directory/bin.