gpt4 book ai didi

docker - 如何在 Dockerfile 中添加除隐藏目录(如 .git)之外的所有文件/目录

转载 作者:IT老高 更新时间:2023-10-28 12:35:03 27 4
gpt4 key购买 nike

我们经常做的一件事是在构建 Docker 镜像时将所有源代码打包到 Dockerfile 中。

ADD . /app

我们如何避免简单地包含 .git 目录?

我尝试使用 Unix 方式处理此问题,使用 ADD [^.]*/app/

完整示例:

docker@boot2docker:/mnt/sda1/tmp/abc$ find .../c./.git./Dockerfile./good./good/a1docker@boot2docker:/mnt/sda1/tmp/abc$ cat DockerfileFROM ubuntuADD [^.]* /app/docker@boot2docker:/mnt/sda1/tmp/abc$ docker build -t abc .Sending build context to Docker daemon 4.096 kBSending build context to Docker daemonStep 0 : FROM ubuntu ---> 04c5d3b7b065Step 1 : ADD [^.]* /app/d ---> 5d67603f108bRemoving intermediate container 60159dee6ac8Successfully built 5d67603f108bdocker@boot2docker:/mnt/sda1/tmp/abc$ docker run -it abcroot@1b1705dd66a2:/# ls -l apptotal 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

其次,它会丢失目录结构,因为 good\a1 被更改为 a1

Docker 中的相关源代码是 https://github.com/docker/docker/blob/eaecf741f0e00a09782d5bcf16159cc8ea258b67/builder/internals.go#L115

最佳答案

您可以在 .dockerignore file 的帮助下排除不需要的文件

关于docker - 如何在 Dockerfile 中添加除隐藏目录(如 .git)之外的所有文件/目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079872/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com