附录 C. 配置 Jenkins freestyle 项目,以使用 nodeshift 部署 Node.js 应用程序
与使用本地主机中的 nodeshift 来部署 Node.js 应用类似,您可以将 Jenkins 配置为使用 nodeshift 来部署 Node.js 应用。
先决条件
- 访问 OpenShift 集群。
- 在同一 OpenShift 集群上运行的 Jenkins 容器镜像。
- 在 Jenkins 服务器上安装的 Node.js 插件。
Node.js 应用程序配置为使用 nodeshift 和 Red Hat 基础镜像。
使用带有 nodeshift 的红帽基础镜像的示例
nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 ...
$ nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - GitHub 中可用的应用源。
步骤
为您的应用程序创建新 OpenShift 项目:
- 打开 OpenShift Web 控制台并登录。
- 单击 Create Project 以创建新的 OpenShift 项目。
- 输入项目信息并点 Create。
确保 Jenkins 有权访问该项目。
例如,如果您为 Jenkins 配置了服务帐户,请确保帐户具有对应用的项目的
编辑
访问权限。在 Jenkins 服务器上创建一个新的自由风格的 Jenkins 项目 :
- 单击 New Item。
- 输入名称,选择 Freestyle project,然后单击 OK。
- 在 Source Code Management 下,选择 Git 并添加应用的 GitHub URL。
- 在 Build Environment 下,确保选中将 Node & npm bin/ 文件夹提供给 PATH,并且配置了 Node.js 环境。
-
在 Build 下,选择 Add build step 并选择
Execute Shell
。 在 Command 区域中添加以下内容:
npm install -g nodeshift nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 --namespace=MY_PROJECT
npm install -g nodeshift nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 --namespace=MY_PROJECT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MY_PROJECT
替换为您的应用的 OpenShift 项目的名称。- 点击 Save。
从 Jenkins 项目的主页中,单击 Build Now,以验证您的应用构建并部署到应用的 OpenShift 项目。
您还可以通过在应用的 OpenShift 项目中打开路由来验证应用程序是否已部署。
后续步骤
-
考虑添加 GITSCM 轮询 或使用
Poll SCM
构建触发器。这些选项可让构建在每次新提交推送到 GitHub 存储库时运行。 -
在配置 Node.js 插件时,请考虑将 nodeshift 添加为全局软件包。这可让您在添加
Execute Shell
构建步骤时省略npm install -g nodeshift
。 - 考虑添加在部署前执行测试的构建步骤。