【发布时间】:2018-10-30 04:16:13
【问题描述】:
我有一个 Jenkins 服务器,我在其上观察一个私有 git 存储库以进行更改,然后触发一个管道脚本(存储库包含一个 nodejs 应用程序)。在这个管道脚本中,我需要执行以下步骤:
- 安装依赖项 (
npm install) - 构建我的应用程序(
npm run build,它会创建一个dist文件夹) - 构建一个 docker 容器 (
docker build) 并运行该容器(运行dist文件夹中的一个脚本)
以下两个选项中的哪一个是推荐的方法,为什么?
选项 A: 在 jenkins 管道中运行 npm install 和 npm run build 并在 docker 构建期间将 dist 文件夹复制到 docker 容器中。这将允许我只使用 npm install --only=production 在 docker 容器中安装运行时依赖项,从而显着减小图像大小。
选项 B: 在 docker build 期间运行 npm install 和 npm run build(在 Dockerfile 中)。如果必须,这将允许我在 CI 服务器之外运行 docker 容器(我现在没有用例,但它看起来更干净,因为它更独立)。但是,图像大小会显着增加,我不确定这是否是推荐的方式。
有什么建议吗?
【问题讨论】:
标签: node.js jenkins continuous-integration