我们经常做的一件事是在Dockerfile
构建 Docker 映像时打包所有源代码。
ADD . /app
我们如何避免.git
以简单的方式包含目录?
我尝试了使用 Unix 的方式来处理这个问题ADD [^.]* /app/
完整样本:
docker@boot2docker:/mnt/sda1/tmp/abc$ 查找。 . 。/C ./.git ./Dockerfile 。/好的 ./好/a1 docker@boot2docker:/mnt/sda1/tmp/abc$ cat Dockerfile 来自 Ubuntu 添加 [^.]* /app/ docker@boot2docker:/mnt/sda1/tmp/abc$ docker build -t abc 。 将构建上下文发送到 Docker 守护进程 4.096 kB 将构建上下文发送到 Docker 守护进程 步骤 0:来自 ubuntu ---> 04c5d3b7b065 第 1 步:添加 [^.]* /app/ d ---> 5d67603f108b 卸下中间容器 60159dee6ac8 成功建造 5d67603f108b docker@boot2docker:/mnt/sda1/tmp/abc$ docker run -it abc root@1b1705dd66a2:/# ls -l app 共 4 个 -rw-r--r-- 1 1000 名员工 30 Jan 22 01:18 Dockerfile -rw-r--r-- 1 根 0 Jan 22 01:03 a1 -rw-r--r-- 1 根根 0 Jan 22 00:10 c
其次,它将丢失目录结构,因为good\a1
更改为a1
.
Docker中的相关源码是https://github.com/docker/docker/blob/eaecf741f0e00a09782d5bcf16159cc8ea258b67/builder/internals.go#L115