2015-05-15 2 views

Antwort

122
COPY README.md package.json gulpfile.js __BUILD_NUMBER ./ 

oder

COPY ["__BUILD_NUMBER", "README.md", "gulpfile", "another_file", "./"] 

Sie können auch Platzhalter in der Quellspezifikation verwenden. See the docs for a little more detail.

Verzeichnisse sind etwas Besonderes! Wenn Sie

COPY dir1 dir2 ./ 

schreiben, die tatsächlich funktioniert wie

COPY dir1/* dir2/* ./ 

Wenn Sie mehrere Verzeichnisse kopiert werden soll (nicht deren Inhalt) unter einem Zielverzeichnis in einem einzigen Befehl, müssen Sie einrichten der Build-Kontext, so dass Ihre Quellverzeichnisse unter einem gemeinsamen Elternteil sind und die COPY diese Eltern.

+8

Wenn die Quellen Verzeichnisse sind, kopiert dies das Verzeichnis * contents *, nicht die Verzeichnisse selbst. – Claudiu

+3

Beachten Sie auch, dass das Zielverzeichnis identisch ist. Wenn Sie viele verschiedene Dateien mit verschiedenen Zielen erstellen, sollten Sie überlegen, ein Overlay-Dateisystem (wie eine Chroot) zu erstellen, das dann in ein "tar" -Archiv umzuwandeln und mit ADD hinzuzufügen. – tudor

+3

@Claudiu Wie kopiert man die Ordner selbst? – k0pernikus

1

einfach

COPY README.md package.json gulpfile.js __BUILD_NUMBER ./ 

vom doc

Wenn mehrere Ressourcen angegeben werden, entweder direkt oder durch die Verwendung einer Wildcard, muss dann ein Verzeichnis sein, und es muss Ende mit einem Schrägstrich /.

Verwandte Themen