具有大量依赖项的javascript前端Docker构建过程
这与其说是“我的代码错了”,不如说是一个关于最佳方法是什么的问题。我正在为后端构建一个基于Aurelia(使用jspm)和Flask restful的小型Web应用程序。当涉及到为所有这些构建Docker容器时,我正在尝试不同的事情(目前它是一个包含前端和后端的单一容器) 我尝试过的两种方法:具有大量依赖项的javascript前端Docker构建过程,javascript,docker,dockerfile,Javascript,Docker,Dockerfile,这与其说是“我的代码错了”,不如说是一个关于最佳方法是什么的问题。我正在为后端构建一个基于Aurelia(使用jspm)和Flask restful的小型Web应用程序。当涉及到为所有这些构建Docker容器时,我正在尝试不同的事情(目前它是一个包含前端和后端的单一容器) 我尝试过的两种方法: 在容器“外部”执行所有依赖项安装(npm/jspm),并使用Dockerfile的“copy”语句将所有工件复制到容器中。这很好,但是“构建工件”甚至所有文件的列表都非常慢。就文件数量而言,Aurelia
我只是对人们正在做的事情感兴趣——我确信我不是唯一一个在使用Docker时,特别是在使用大量文件的前端框架时,面临过多构建时间问题的人。我支持“级联”容器方法(这是Docker的一个重要特性)——这与您的混合方法基本相同。当然,没有什么能阻止您按顺序使用多个图像,而不仅仅是一个基本容器 您可以根据依赖项的层次结构级联构建。您还可以缩短链中每个docker映像的构建时间,从而加快连续构建 缺点是,这会引入更多的复杂性,因为您需要为每个分离的映像创建一个新的构建管道 对于诸如npm包之类的临时文件,我也倾向于在容器中构建这些文件-这使您的图像和构建设置更具可移植性,尽管我通常将git放在容器之外,并让构建包装器处理这些文件,这使您的git信誉更安全 你说你的构建速度很慢,但为什么这一定是个问题?一旦设置好环境,就不需要一直在重建?只需使用卷装载来针对正在运行的容器进行开发,并让构建过程在后台启动,只要合并(或其他)都由构建服务器处理