我们目前正在与我们的团队一起在我们的网站上查看CI/CD.我们最近也适应了monorepo结构,因为这使我们的依赖和概述更容易.目前测试等已准备好用于CI,但我现在正在进行部署.我想创建所需包的docker镜像.
我考虑的事情:
1)将完整的monorepo拉入docker项目,但在我们的项目中运行yarn安装导致总项目大小约为700MB,这主要是由于我们的本机应用程序甚至不应该有docker镜像.此外,每次我们必须部署新版本时,这都会导致图像拉长时间过长
2)以某种方式捆绑我的项目.我们的前端我们有工作设置,所以应该没问题.但是我只是尝试将webpack添加到我们的快速api中,并因此问题在我的捆绑包中出现错误:https://github.com/mapbox/node-pre-gyp/issues/308
3)我尝试仅在所需项目中运行yarn安装,但这仍将为我的所有项目安装我的node_modules.
4)运行npm包:pkg.这导致单个文件准备好在具有特定节点版本的特定系统上运行.这可行,但我不确定这将如何处理错误和崩溃.
5)另一种解决方案是将项目复制出工作区并在那里运行纱线安装.这个问题是使用纱线工作区(隐式链接的依赖关系)就好了.我必须明确地添加我的其他工作区依赖项.一种可能性是从某个提交哈希引用它们,我现在要测试它.(编辑:您似乎无法将子目录引用为纱线包)
6)???
我想知道我是否缺少一个选项,只为某个项目只有所需的node_modules,所以我可以保持我的docker图像小.