HINZUFÜGEN Einer der Dinge, die wir oft tun, ist, alle Quellcode in Dockerfile
zu verpacken, wenn wir ein Docker-Bild erstellen.Wie alle Dateien/Verzeichnisse außer einem versteckten Verzeichnis wie .git in Dockerfile
ADD . /app
Wie können wir vermeiden, das Verzeichnis .git
in einfacher Weise zu integrieren?
habe ich versucht, den Unix-Weg
komplette Probe dies mit ADD [^.]* /app/
der Handhabung:
[email protected]:/mnt/sda1/tmp/abc$ find . . ./c ./.git ./Dockerfile ./good ./good/a1 [email protected]:/mnt/sda1/tmp/abc$ cat Dockerfile FROM ubuntu ADD [^.]* /app/ [email protected]:/mnt/sda1/tmp/abc$ docker build -t abc . Sending build context to Docker daemon 4.096 kB Sending build context to Docker daemon Step 0 : FROM ubuntu ---> 04c5d3b7b065 Step 1 : ADD [^.]* /app/ d ---> 5d67603f108b Removing intermediate container 60159dee6ac8 Successfully built 5d67603f108b [email protected]:/mnt/sda1/tmp/abc$ docker run -it abc [email protected]:/# ls -l app total 4 -rw-r--r-- 1 1000 staff 30 Jan 22 01:18 Dockerfile -rw-r--r-- 1 root root 0 Jan 22 01:03 a1 -rw-r--r-- 1 root root 0 Jan 22 00:10 c
Und zweitens, es wird die Verzeichnisstruktur verlieren, da good\a1
zu a1
geändert wird.
Verwandte Quellcode in Docker ist https://github.com/docker/docker/blob/eaecf741f0e00a09782d5bcf16159cc8ea258b67/builder/internals.go#L115