如图,docker build持续了2分钟。
这么慢并不是docker pull的原因,因为已经替换过docker镜像源了
Dockerfile:
仅构建一个nginx
请问应该怎么进行优化?
docker info内容:
docker所有镜像:
如图,docker build持续了2分钟。
这么慢并不是docker pull的原因,因为已经替换过docker镜像源了
Dockerfile:
仅构建一个nginx
请问应该怎么进行优化?
docker info内容:
docker所有镜像:
Docker构建过程有时会很慢,但有几种方法可以优化它:
使用多级构建:多级构建允许您在Dockerfile中使用多个FROM语句,这可以帮助您减少最终图像大小和构建时间。
缓存Docker层:Docker缓存允许您重用以前构建的层,减少需要构建的图像层的数量,并加快构建过程
尽量减少RUN命令的数量:RUN命令越多,创建的层就越多,这会减慢构建过程。尽量减少Dockerfile中RUN命令的数量。
使用Docker构建上下文:Docker构建环境是当前目录中的一组文件,将作为构建环境发送给Docker守护进程。减小构建上下文的大小以加快构建过程。
使用Docker注册表镜像:在网络中使用Docker注册镜像可以减少从internet获取图像所需的时间,因为图像将从镜像而不是从原始注册表获取。
使用dockerignore文件:dockerignorefile允许您从构建上下文中排除文件和目录,这可以减少构建上下文的大小并加快构建过程。
通过使用这些技术,您应该能够优化Docker构建过程并使其更快。
正如该问题的采纳答案,docker build时会将工作目录下的文件加载到上下文上,再这个时候该工作目录下存在node_module等文件,这些文件随项目扩展第三方包依赖增加,体积会越来越大,导致拖慢了构建速度。
解决:
由于,我需要将工作目录下打包好的dist目录,复制一份到/server/dist/,所以使用第二种解决方法较合适
6 回答3.3k 阅读✓ 已解决
8 回答3.6k 阅读
2 回答2.6k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答928 阅读
可能是build时,todo-web-dev文件夹里面包含了
.node_module
,然后node_module里面的文件非常多非常大。docker进行build时,需要把工作目录下的文件都加载到构建上下文上,时间应该都是花在这里。
可以在构建的时候换一个目录,只保留必要的文件,再进行build。