构建上下文大小会影响图像大小吗?
Does build context size affect the image size?
当我使用 docker build
构建图像时,输出包含上下文大小,例如:
Sending build context to Docker daemon 1.315GB
[...]
Successfully built a9ec4d33e12e
这个尺寸会影响生成的图像尺寸吗?我应该设法减少它吗?
Does this size affect the resulting image size?
没有
Should I seek to reduce it?
是的。它节省了构建图像的时间。
来源:
https://medium.com/better-programming/docker-tips-about-the-build-context-dbc76505e178
构建上下文在某些情况下会影响图像的大小,是的。
如果你这样做:
COPY . /app
然后上下文中的所有内容将被复制到图像中的/app
。
如果您只是复制上下文的显式子集,例如COPY mydir/ app/
,则上下文大小不会影响图像大小,只有mydir
的内容会影响图像大小。
您应该创建一个 .dockerignore
来忽略您不关心的文件。
当您 运行 docker build
时,它将 Dockerfile
目录和所有子目录中的所有文件发送到 Docker 守护进程。它在假设您的 Dockerfile
可能会引用所有这些文件的情况下执行此操作,但请注意 它不会检查您的 Dockerfile
以确定要发送的文件。它只是发送所有内容。
有几种方法可以减少构建上下文的大小:
将您的 Dockerfile
放在它自己的目录中,只包含它需要的文件。例如,不要将 Dockerfile
放在项目的顶层,而是将其放在自己的子目录中。
编写一个 .dockerignore
文件,列出要从构建上下文中排除的文件。当您无法将文件移开时,这是下一个最好的选择。
Does this size affect the resulting image size?
是也不是。过大的构建上下文不会增加图像大小。 Dockerfile
未使用的构建上下文中的额外文件将被丢弃。
但是,如果您使用 .dockerignore
来忽略 Dockerfile
确实使用的文件,则可以减小图像大小(并可能破坏图像)。例如,忽略文件会导致 COPY . /app
复制更少的文件。
Should I seek to reduce it?
是的。它将加快构建过程。
当我使用 docker build
构建图像时,输出包含上下文大小,例如:
Sending build context to Docker daemon 1.315GB
[...]
Successfully built a9ec4d33e12e
这个尺寸会影响生成的图像尺寸吗?我应该设法减少它吗?
Does this size affect the resulting image size?
没有
Should I seek to reduce it?
是的。它节省了构建图像的时间。
来源:
https://medium.com/better-programming/docker-tips-about-the-build-context-dbc76505e178
构建上下文在某些情况下会影响图像的大小,是的。
如果你这样做:
COPY . /app
然后上下文中的所有内容将被复制到图像中的/app
。
如果您只是复制上下文的显式子集,例如COPY mydir/ app/
,则上下文大小不会影响图像大小,只有mydir
的内容会影响图像大小。
您应该创建一个 .dockerignore
来忽略您不关心的文件。
当您 运行 docker build
时,它将 Dockerfile
目录和所有子目录中的所有文件发送到 Docker 守护进程。它在假设您的 Dockerfile
可能会引用所有这些文件的情况下执行此操作,但请注意 它不会检查您的 Dockerfile
以确定要发送的文件。它只是发送所有内容。
有几种方法可以减少构建上下文的大小:
将您的
Dockerfile
放在它自己的目录中,只包含它需要的文件。例如,不要将Dockerfile
放在项目的顶层,而是将其放在自己的子目录中。编写一个
.dockerignore
文件,列出要从构建上下文中排除的文件。当您无法将文件移开时,这是下一个最好的选择。
Does this size affect the resulting image size?
是也不是。过大的构建上下文不会增加图像大小。 Dockerfile
未使用的构建上下文中的额外文件将被丢弃。
但是,如果您使用 .dockerignore
来忽略 Dockerfile
确实使用的文件,则可以减小图像大小(并可能破坏图像)。例如,忽略文件会导致 COPY . /app
复制更少的文件。
Should I seek to reduce it?
是的。它将加快构建过程。