webentwicklung-frage-antwort-db.com.de

Dockerfile-Kopie behält die Unterverzeichnisstruktur bei

Ich versuche, eine Reihe von Dateien und Ordnern von meinem localhost in ein Docker-Image zu kopieren.

Die Dateien sind wie folgt:

folder1
    file1
    file2
folder2
    file1
    file2

Ich versuche die Kopie so zu machen:

COPY files/* /files/

Alle Dateien werden jedoch in/files/abgelegt. Gibt es in Docker eine Möglichkeit, die Unterverzeichnisstruktur beizubehalten und die Dateien in ihre Verzeichnisse zu kopieren?

180
user1220022

Entfernen Sie den Stern von COPY mit dieser Docker-Datei:

FROM ubuntu
COPY files/ /files/
RUN ls -la /files/*

Struktur ist da:

$ docker build .
Sending build context to Docker daemon 5.632 kB
Sending build context to Docker daemon 
Step 0 : FROM ubuntu
 ---> d0955f21bf24
Step 1 : COPY files/ /files/
 ---> 5cc4ae8708a6
Removing intermediate container c6f7f7ec8ccf
Step 2 : RUN ls -la /files/*
 ---> Running in 08ab9a1e042f
/files/folder1:
total 8
drwxr-xr-x 2 root root 4096 May 13 16:04 .
drwxr-xr-x 4 root root 4096 May 13 16:05 ..
-rw-r--r-- 1 root root    0 May 13 16:04 file1
-rw-r--r-- 1 root root    0 May 13 16:04 file2

/files/folder2:
total 8
drwxr-xr-x 2 root root 4096 May 13 16:04 .
drwxr-xr-x 4 root root 4096 May 13 16:05 ..
-rw-r--r-- 1 root root    0 May 13 16:04 file1
-rw-r--r-- 1 root root    0 May 13 16:04 file2
 ---> 03ff0a5d0e4b
Removing intermediate container 08ab9a1e042f
Successfully built 03ff0a5d0e4b
303
ISanych

Alternativ können Sie auch ein "." Anstelle von * müssen Sie die folgenden Ordner und Unterordner einfügen, da alle Dateien im Arbeitsverzeichnis gespeichert werden:

FROM ubuntu
COPY . /
RUN ls -la /
15
Sparkz0629

Gehen Sie folgendermaßen vor, um ein lokales Verzeichnis mit einem Verzeichnis in einem Bild zusammenzuführen . Es werden keine Dateien gelöscht, die bereits im Bild vorhanden sind. Es werden nur lokal vorhandene Dateien hinzugefügt, wobei die Dateien im Image überschrieben werden, wenn bereits eine Datei mit demselben Namen vorhanden ist.

COPY ./files/. /files/
3
Cameron Hudson