docker 难道只能在运行时挂载一个目录?因为我使用多阶段构建(参考
http://ju.outofmemory.cn/entr...), 每次构建的第一个阶段都需要重新下载一遍依赖。
我觉得可以把母机上的一个路径挂载到第一个阶段里保存依赖的第三方库,下次构建或者别的项目构建就会快很多了。
能不能办到?
docker 难道只能在运行时挂载一个目录?因为我使用多阶段构建(参考
http://ju.outofmemory.cn/entr...), 每次构建的第一个阶段都需要重新下载一遍依赖。
我觉得可以把母机上的一个路径挂载到第一个阶段里保存依赖的第三方库,下次构建或者别的项目构建就会快很多了。
能不能办到?
2 回答2.8k 阅读✓ 已解决
2 回答772 阅读✓ 已解决
1 回答673 阅读✓ 已解决
1 回答616 阅读
大概说一下,拿我稍微熟悉的Node.js来举例,你可能是不想在容器里创建node_modules这个依赖包文件夹,而是把宿主机的某个目录给挂载过去是吧?但是在构建的过程中,你需要下载依赖不止一次?或者是有多个依赖包文件夹?
我没实验过,不过我猜想哪怕你有多个安装包文件夹,容器运行时可以一个个分别挂载,那么这么做应该是可以的:
不过理论上来说这么做不太好,毕竟镜像的依赖包跟运行环境牵扯太大,我是这么弄Dockerfile的:
我先把依赖配置文件拷贝进镜像里,然后安装依赖包,再拷贝项目。
这样之后只要依赖包配置文件不变化,那么在安装依赖包这一步的镜像层可以反复利用,构建速度会有很大提升。
希望能帮助到你。