81

阅读.dockerignore文档后,我想知道是否有办法对其进行测试?

例子

**/node_modules/

如何检查我的 dockerfile 忽略正确的文件和目录?

4

4 回答 4

129

为了扩展VonC 的建议,这里有一个示例构建命令,您可以使用它来使用当前文件夹的构建上下文创建图像:

docker image build --no-cache -t build-context -f - . <<EOF
FROM busybox
WORKDIR /build-context
COPY . .
CMD find .
EOF

创建后,运行容器并检查/build-context目录的内容,其中包括.dockerignore文件未排除的所有内容:

# run the default find command
docker container run --rm build-context

# or inspect it from a shell using
docker container run --rm -it build-context /bin/sh

然后,您可以使用以下方法进行清理:

docker image rm build-context
于 2016-12-05T02:25:29.920 回答
31

要详细分析构建上下文,您可以使用pwaller/docker-show-context

$ go get -v -u github.com/pwaller/docker-show-context
$ cd ~/path/to/project/using/docker
$ docker-show-context

它输出有关构建的统计信息,例如文件大小和上传时间。

于 2016-12-04T21:57:55.877 回答
10

要扩展BMitch的答案(它实现了VonC的答案),您可以使用一个简单的命令来完成:

docker build -f - . <<EOF
FROM busybox
COPY . /build-context
WORKDIR /build-context
RUN find .
EOF

从 切换CMDRUN意味着您不必运行容器,因为构建将输出find ..

于 2021-06-30T14:25:00.870 回答
6

一种方法是制作一个包含ADDCOPY指令的小型 Dockerfile。

尝试在node_modules文件夹中添加或复制文件:它不成功,那是因为.dockerignore.

于 2016-08-14T21:29:06.530 回答