2017-05-30 2 views
1

Nehmen wir an, ich habe ein Repo auf git - REPO, das ich für automatisierte Builds mit Docker Cloud verknüpft habe. Der Build erfordert, dass ich den gesamten Ordner REPO auf den Container kopiere.Wie kopieren Sie einen beliebigen Ordner in einen Docker-Container - während sich die Docker-Datei in diesem Ordner befindet?

Gibt es eine Möglichkeit, so dass eine Dockerfile innerhalbREPO Inhalt in den Container kopieren kann? Ich habe ADD und COPY nachgeschlagen, aber sie funktionieren nur, wenn die Dockerfile in einem Ordner vorhanden ist, der ein Verzeichnis außerhalb REPO ist.

FOLDER |-> Dockerfile REPO - arbeitet

FOLDER |-> REPO |-> Dockerfile - nicht

Auch Platzhalter, wie der Befehl funktioniert: ADD ./* /root/ nicht zu funktionieren schien.

Antwort

1

Die folgende dockerfile tut, was Sie wollen, wenn ich Sie richtig verstehe:

FROM alpine 

RUN mkdir /test 
WORKDIR /test 

COPY ./ /test/ 

CMD ["/bin/sh"] 

mit folgenden Eingabe in $dir und Docker Build von $dir ausgeführt wird:

Dockerfile somefile somefolder 

/test/ im Docker Bild enthält:

/test # ls 
Dockerfile somefile somefolder 
+0

Die 'COPY ./*/test /' Befehl ignoriert Ordnerstruktur. Es werden nur alle Dateien und Ordnerinhalte in "test" geschrieben. – RazorCallahan24

+1

Mir ist aufgefallen, dass 'copy./' ohne das '*' es aber zumindest auf meinem Testsystem (docker version 17.03.1-ce) erhält –

+0

Danke! Es klappt. – RazorCallahan24

0

Das ist durchaus möglich. Sein . die Wurzel Ihrer FOLDER (wie Sie zeigen). Sie benötigen:

docker build . -f REPO/Dockerfile -t imagename 

Und tun COPY oder ADD relativ zu .

Verwandte Themen