1. 先说答案
将Dockerfile中COPY * .替换成COPY . .
COPY * .会将当所有文件夹下文件,拷贝到镜像同一文件夹下,不会保留文件夹层级关系。
2. 演示问题
文件树
demo
├── Dockerfile
├── a.txt
└── b-dir
└── b.txt
内容
Dockerfile
FROM debian:11
WORKDIR /demo
COPY * .
CMD ["ls", "-l", "/demo"]
构建 & 启动
demo文件夹内
构建:docker build -f Dockerfile . -t demo:1.0
启动:docker run --rm demo:1.0
输出
total 4
-rw-r--r-- 1 root root 66 Sep 24 01:50 Dockerfile
-rw-r--r-- 1 root root 0 Sep 24 01:04 a.txt
-rw-r--r-- 1 root root 0 Sep 24 01:04 b.txt
本文解释了Dockerfile中COPY*.指令的含义,指出它会将当前目录下所有文件和子目录不保留层级地复制到镜像内的同一目录。通过一个具体的文件树结构和Dockerfile示例,展示了如何使用COPY*.命令,以及其运行结果。在构建和启动容器后,显示了ls命令列出的容器内部文件,进一步证实了COPY*的拷贝行为。
976

被折叠的 条评论
为什么被折叠?



