【发布时间】:2022-02-12 08:20:27
【问题描述】:
所以我们正在从 yarn 1.x 迁移到 yarn 2(yarn 3.1.1),我对如何在我的 CI/CD 配置中配置 yarn 有点困惑。截至目前,我们的管道执行以下操作以部署到我们的 Kubernetes 集群:
在分支 PR:
-
在 gitlab runner 中获取分支 repo
-
皮棉
-
开个玩笑
-
使用环境变量、依赖项和开发依赖项构建
-
使用标签
test将镜像发布到容器注册表一个。如果成功,允许合并到主目录
-
Kubernetes 监视更新以进行测试并将测试 pod 部署到集群
合并到主目录时:
- 在 gitlab runner 中获取主仓库
- 皮棉
- 开个玩笑
- 使用环境变量和依赖项构建
- 使用标签
latest将镜像发布到容器注册表 - Kubernetes 监视最新的更新并将临时 pod 部署到集群
(注意:对于成熟的生产版本,我们将使用发布功能手动将发布部署到生产服务器)
问题是我们使用零安装的纱线 2,过去我们可以通过运行 yarn install --production 来阻止生产环境使用任何开发依赖项。在纱线 2 中,此命令已被弃用。
是否有任何理想的解决方案可以防止在生产环境中安装开发依赖项?我已经看到一些帖子提到使用工作区,但这似乎更适合有多个应用程序的单一存储库。
提前感谢您的帮助!
【问题讨论】:
-
您使用的是哪个版本的 Kubernetes,您是如何设置集群的?您是否使用裸机安装或某些云提供商?您的问题与 Kubernetes 有什么关系?
-
@MikołajGłodziak 问题不在于 Kubernetes,而更多地在于纱线。我们的 Kubernetes 集群使用 helm 图表,并与 Azure 一起部署在云中。我想要做的是生成 Web 应用程序的生产版本以部署到 Kubernetes,而使用 yarn 2.0 似乎不可能。 (虽然我觉得这很难相信)
标签: docker kubernetes next.js yarnpkg cicd