Node.js 运行时指南
使用 Node.js 20 开发在 OpenShift 和独立 RHEL 上运行的可扩展网络应用程序
摘要
前言 复制链接链接已复制到粘贴板!
本指南涵盖了开发人员使用 Node.js 运行时所需的概念和实际详情。
第 1 章 使用 Node.js 进行应用程序开发简介 复制链接链接已复制到粘贴板!
本节介绍使用红帽运行时进行应用程序开发的基本概念。它还提供有关 Node.js 运行时的概述。
1.1. 使用 Red Hat Runtimes 进行应用程序开发概述 复制链接链接已复制到粘贴板!
Red Hat OpenShift 是一个容器应用程序平台,提供一组云原生运行时。您可以使用运行时在 OpenShift 中开发、构建和部署 Java 或 JavaScript 应用。
使用 Red Hat Runtimes for OpenShift 进行应用程序开发包括:
- 用于在 OpenShift 上运行的运行时集合,如 Eclipse Vert.x、Thot.x、Spring Boot 等。
- 在 OpenShift 上云原生开发的一个规范性方法。
OpenShift 可帮助您管理、保护和自动化应用的部署和监控。您可以将业务问题分解为较小的微服务,并使用 OpenShift 部署、监控和维护微服务。您可以在应用中实施断路器、健康检查和服务发现等模式。
云原生开发充分利用了云计算的优势。
您可以在以下方法中构建、部署和管理应用程序:
- OpenShift Container Platform
- 红帽私有内部云.
- Red Hat CodeReady Studio
- 用于开发、测试和部署应用程序的集成开发环境(IDE)。
本指南提供有关 Node.js 运行时的详细信息。有关其他运行时的更多信息,请参阅相关的 运行时文档。
1.2. Node.js 概述 复制链接链接已复制到粘贴板!
Node.js 基于 Google 的 V8 JavaScript 引擎,允许您编写服务器端 JavaScript 应用。它根据事件和非阻塞操作提供 I/O 模型,可让您编写高效的应用程序。Node.js 还提供名为 npm 的大型模块生态系统。查看 附加资源以在 Node.js 上进一步阅读。
Node.js 运行时允许您在 OpenShift 上运行 Node.js 应用程序和服务,同时提供 OpenShift 平台的所有优点和便利性,如滚动更新、持续交付管道、服务发现和 Canary 部署。OpenShift 还使您的应用能够更轻松地实施常见微服务模式,如外部化配置、健康检查、断路器和故障转移等。
红帽提供了不同的 Node.js 版本。有关如何获得支持的更多信息,请参阅 从红帽获取 Node.js 和支持。
1.2.1. Node.js 支持的架构 复制链接链接已复制到粘贴板!
Node.js 支持以下构架:
- x86_64 (AMD64)
- OpenShift 环境中的 IBM Z (s390x)
- OpenShift 环境中的 IBM Power 系统(ppc64le)
1.2.2. 支持联邦信息处理标准(FIPS) 复制链接链接已复制到粘贴板!
联邦信息处理标准(FIPS)提供了改进跨计算机系统和网络的安全与互操作性的指南和要求。FIPS 140-2 和 140-3 系列适用于硬件和软件级别的加密模块。
联邦信息处理标准(FIPS)出版物 140-2 是美国开发的计算机安全标准。政府和行业工作组来验证加密模块的质量。请参阅 NIST 计算机安全资源中心 上的官方 FIPS 出版物。
Red Hat Enterprise Linux (RHEL)提供了一个集成框架,用于为系统范围的 FIPS 140-2 合规性。当在 FIPS 模式下运行时,使用加密库的软件包会根据全局策略自行配置。
要了解合规要求,请参阅 红帽政府标准 页面。
红帽构建的 Node.js 在启用了 FIPS 的 RHEL 系统上运行,并使用 RHEL 提供的 FIPS 认证的库。
1.2.2.2. 验证 Node.js 是否在 FIPS 模式下运行 复制链接链接已复制到粘贴板!
您可以使用 crypto.fips 来验证 Node.js 是否在 FIPS 模式下运行。
先决条件
- 在 RHEL 主机上启用了 FIPS。
流程
-
在 Node.js 项目中,创建一个名为
app.js的应用文件。 在
app.js文件中,输入以下详情:const crypto = require('crypto'); console.log(crypto.fips);const crypto = require('crypto'); console.log(crypto.fips);Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
app.js文件。
验证
在 Node.js 项目中,运行
app.js文件:node app.js
node app.jsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果启用了 FIPS,应用程序会在控制台打印
1。如果禁用了 FIPS,应用程序会将0输出到控制台。
第 2 章 开发和部署 Node.js 应用程序 复制链接链接已复制到粘贴板!
您可以创建新的 Node.js 应用并将其部署到 OpenShift。
2.1. 开发 Node.js 应用程序 复制链接链接已复制到粘贴板!
对于基本 Node.js 应用,您必须创建一个 JavaScript 文件,其中包含 Node.js 方法。
先决条件
-
npm已安装。
流程
创建新目录
myApp,再导航到它。mkdir myApp cd MyApp
$ mkdir myApp $ cd MyAppCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这是应用的根目录。
使用
npm初始化应用程序。本例的其余部分假定入口点是
app.js,在运行npm init时会提示您输入设置。cd myApp npm init
$ cd myApp $ npm initCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在名为
app.js的新文件中创建入口点。app.js示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动应用程序。
node app.js
$ node app.js Server running at http://localhost:8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
curl或浏览器,验证您的应用程序是否在http://localhost:8080中运行。curl http://localhost:8080
$ curl http://localhost:8080 {"content":"Hello, World!"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
附加信息
- Node.js 运行时提供核心 Node.js API,记录在 Node.js API 文档中。
2.2. 将 Node.js 应用程序部署到 Openshift 复制链接链接已复制到粘贴板!
要将 Node.js 应用部署到 OpenShift,将 nodeshift 添加到应用,配置 package.json 文件,然后使用 nodeshift 部署。
2.2.1. 为 OpenShift 部署准备 Node.js 应用程序 复制链接链接已复制到粘贴板!
要为 OpenShift 部署准备 Node.js 应用程序,您必须执行以下步骤:
-
将
nodeshift添加到应用程序。 -
在
package.json文件中添加openshift和start条目。
先决条件
-
npm已安装。
流程
将
nodeshift添加到应用程序中。npm install nodeshift --save-dev
$ npm install nodeshift --save-devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
openshift和start条目添加到package.json中的scripts部分。Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift脚本使用nodeshift将应用部署到 OpenShift。注意通用基础镜像和 RHEL 镜像可用于 Node.js。有关镜像名称的更多信息,请参阅 Node.js 发行注记。
可选 :在
package.json中添加files部分。Copy to Clipboard Copied! Toggle word wrap Toggle overflow files部分告知nodeshift部署到 OpenShift 时要包含哪些文件和目录。nodeshift使用node-tar模块根据您在files部分列出的文件和目录创建 tar 文件。当nodeshift将应用部署到 OpenShift 时,使用此 tar 文件。如果没有指定files部分,nodeshift将发送整个当前目录,不包括:-
node_modules/ -
.git/ tmp/建议您在
package.json中包含files部分,以避免在部署到 OpenShift 时包括不必要的文件。
-
2.2.2. 将 Node.js 应用部署到 OpenShift 复制链接链接已复制到粘贴板!
您可以使用 nodeshift 将 Node.js 应用部署到 OpenShift。
先决条件
-
安装了
ocCLI 客户端。 -
npm已安装。 - 在配置路由时,确保应用程序使用的所有端口被正确公开。
流程
使用
oc客户端登录您的 OpenShift 实例。oc login ...
$ oc login ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
nodeshift将应用部署到 OpenShift。npm run openshift
$ npm run openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 将 Node.js 应用程序部署到独立 Red Hat Enterprise Linux 复制链接链接已复制到粘贴板!
您可以使用 npm 将 Node.js 应用程序部署到独立 Red Hat Enterprise Linux。
先决条件
- Node.js 应用。
- 已安装 npm 6.14.8
- 安装了 RHEL 7 或 RHEL 8。
- 安装了 Node.js
流程
如果您在项目的
package.json文件中指定了额外的依赖项,请确保在运行应用程序前安装它们。npm install
$ npm installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从应用的根目录部署应用。
node app.js
$ node app.js Server running at http://localhost:8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
使用
curl或浏览器验证您的应用程序是否在http://localhost:8080中运行curl http://localhost:8080
$ curl http://localhost:8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 调试基于 Node.js 的应用 复制链接链接已复制到粘贴板!
本节介绍调试基于 Node.js 的应用程序,并在本地和远程部署中使用调试日志。
3.1. 远程调试 复制链接链接已复制到粘贴板!
要远程调试应用,您需要以调试模式启动它,并为它附加一个调试器。
3.1.1. 在本地启动应用程序并附加原生调试器 复制链接链接已复制到粘贴板!
原生调试器允许您使用内置的调试客户端调试基于 Node.js 的应用。
先决条件
- 要调试的应用程序。
流程
在启用了 debugger 的情况下启动应用。
原生调试器会自动附加,并提供调试提示。
启用调试器的示例应用
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的应用程序具有不同的入口点,则需要更改命令来指定该入口点:
node inspect path/to/entrypoint
$ node inspect path/to/entrypointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,当使用 express 生成器 创建应用程序时,入口点默认设置为
./bin/www。- 使用 debugger 提示符执行 调试命令。
3.1.2. 在本地启动应用程序并附加 V8 检查器 复制链接链接已复制到粘贴板!
V8 检查器允许您使用其他工具(如 Chrome DevTools )调试基于 Node.js 的应用程序,其使用 Chrome 调试协议。
先决条件
- 要调试的应用程序。
- 安装了 V8 检查器,如 Google Chrome 浏览器中提供的 V8 检查器。
流程
启动启用了 V8 检查器集成的应用程序。
node --inspect app.js
$ node --inspect app.jsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的应用程序具有不同的入口点,则需要更改命令来指定该入口点:
node --inspect path/to/entrypoint
$ node --inspect path/to/entrypointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,当使用 express 生成器 创建应用程序时,入口点默认设置为
./bin/www。附加 V8 检查器并执行调试命令。
例如,如果使用 Google Chrome:
-
导航到
chrome://inspect。 - 从以下远程目标 中选择 您的应用程序。
- 现在,您可以看到应用程序的源,并可执行调试操作。
-
导航到
3.1.3. 以调试模式在 OpenShift 上启动应用程序 复制链接链接已复制到粘贴板!
要在 OpenShift 远程上调试基于 Node.js 的应用程序,您必须将容器内的 NODE_ENV 环境变量设置为 开发和 配置端口转发,以便您可以从远程调试器连接到应用程序。
先决条件
- 在 OpenShift 上运行的应用。
-
安装了
oc二进制文件。 -
在目标 OpenShift 环境中执行
oc port-forward命令的功能。
流程
使用
oc命令,列出可用的部署配置:oc get dc
$ oc get dcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将应用程序的部署配置中的
NODE_ENV环境变量设置为development以启用调试。例如:oc set env dc/MY_APP_NAME NODE_ENV=development
$ oc set env dc/MY_APP_NAME NODE_ENV=developmentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果应用程序没有设置为在配置更改时自动重新部署,请重新部署它。例如:
oc rollout latest dc/MY_APP_NAME
$ oc rollout latest dc/MY_APP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置从本地机器到应用程序 pod 的端口转发:
列出当前运行的 pod 并查找包含应用程序的 pod:
oc get pod
$ oc get pod NAME READY STATUS RESTARTS AGE MY_APP_NAME-3-1xrsp 0/1 Running 0 6s ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置端口转发:
oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5858
$ oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5858Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
$LOCAL_PORT_NUMBER是您选择的本地机器上未使用的端口号。记住远程调试器配置的这个数字。
附加 V8 检查器并执行调试命令。
例如,如果使用 Google Chrome:
-
导航到
chrome://inspect。 - 单击 配置。
-
添加
127.0.0.1:$LOCAL_PORT_NUMBER. - 点 Done。
- 从以下远程目标 中选择 您的应用程序。
- 现在,您可以看到应用程序的源,并可执行调试操作。
-
导航到
完成调试后,取消设置应用程序 pod 中的
NODE_ENV环境变量。例如:oc set env dc/MY_APP_NAME NODE_ENV-
$ oc set env dc/MY_APP_NAME NODE_ENV-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 调试日志记录 复制链接链接已复制到粘贴板!
调试日志记录是在调试时向应用程序日志添加详细信息的方法。这可让您:
- 在应用正常操作期间保留最少的日志输出,以提高可读性并减少磁盘空间使用率。
- 在解决问题时,查看有关应用程序内部工作的详细信息。
3.2.1. 添加调试日志记录 复制链接链接已复制到粘贴板!
本例使用 debug 软件包,但还有其他软件包 可以处理调试日志。
先决条件
- 您有一个要调试的应用程序。
流程
添加
debug日志记录定义。const debug = require('debug')('myexample');const debug = require('debug')('myexample');Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加 debug 语句。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 debug 模块添加到
package.json。... "dependencies": { "debug": "^3.1.0" }... "dependencies": { "debug": "^3.1.0" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据您的应用程序,可能已经包含此模块。例如,在使用 express 生成器 创建应用程序时,
debug模块已添加到package.json中。安装应用依赖项。
npm install
$ npm installCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. 访问 localhost 上的调试日志 复制链接链接已复制到粘贴板!
在启动应用时,请使用 DEBUG 环境变量来启用调试日志记录。
先决条件
- 具有调试日志的应用程序。
流程
在启动应用时设置
DEBUG环境变量以启用调试日志记录。DEBUG=myexample npm start
$ DEBUG=myexample npm startCopy to Clipboard Copied! Toggle word wrap Toggle overflow debug模块 可以使用通配符 来过滤调试消息。这使用DEBUG环境变量进行设置。测试应用来调用调试日志记录。
例如,以下命令基于示例 REST API 级别 0 应用程序,其中 debug 日志记录被设置为在
/api/greeting方法中记录name变量:curl http://localhost:8080/api/greeting?name=Sarah
$ curl http://localhost:8080/api/greeting?name=SarahCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看应用程序日志以查看您的调试信息。
myexample name: Sarah +3m
myexample name: Sarah +3mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. 访问 OpenShift 上的 Node.js 调试日志 复制链接链接已复制到粘贴板!
使用 OpenShift 中的应用容器集中的 DEBUG 环境变量来启用调试日志记录。
先决条件
- 具有调试日志的应用程序。
-
安装了
ocCLI 客户端。
流程
使用
ocCLI 客户端登录 OpenShift 实例。oc login ...
$ oc login ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将应用部署到 OpenShift。
npm run openshift
$ npm run openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此操作运行
openshiftnpm 脚本,它将嵌套对 nodeshift 的直接调用。查找 pod 的名称,并按照日志监视它启动。
oc get pods oc logs -f pod/POD_NAME
$ oc get pods .... $ oc logs -f pod/POD_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要pod 启动后,让此命令保持运行,并在新的终端窗口中执行剩余的步骤。这可让您 跟踪 日志并查看组成的新条目。
测试应用。
例如,以下命令基于示例 REST API 级别 0 应用程序,其中 debug 日志记录被设置为在
/api/greeting方法中记录name变量:oc get routes curl $APPLICATION_ROUTE/api/greeting?name=Sarah
$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=SarahCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 返回到 pod 日志,并注意日志中没有 debug 日志信息。
设置
DEBUG环境变量以启用调试日志记录。oc get dc oc set env dc DC_NAME DEBUG=myexample
$ oc get dc ... $ oc set env dc DC_NAME DEBUG=myexampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 返回到 pod 日志,以观察更新推出。
推出更新后,您的 Pod 将停止,您将不再遵循日志。
查找新 pod 的名称并按照日志进行操作。
oc get pods oc logs -f pod/POD_NAME
$ oc get pods .... $ oc logs -f pod/POD_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要pod 启动后,让此命令保持运行,并在不同的终端窗口中执行剩余的步骤。这可让您 跟踪 日志并查看组成的新条目。具体来说,日志将显示您的调试信息。
测试应用来调用调试日志记录。
oc get routes curl $APPLICATION_ROUTE/api/greeting?name=Sarah
$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=SarahCopy to Clipboard Copied! Toggle word wrap Toggle overflow 返回到 pod 日志以查看 debug 信息。
... myexample name: Sarah +3m
... myexample name: Sarah +3mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要禁用调试日志记录,请从 pod 中删除 DEBUG 环境变量:
oc set env dc DC_NAME DEBUG-
$ oc set env dc DC_NAME DEBUG-
其他资源
有关环境变量的更多详细信息,请参阅 OpenShift 文档。
附录 A. 关于 Nodeshift 复制链接链接已复制到粘贴板!
Nodeshift 是一个使用 Node.js 项目运行 OpenShift 部署的模块。
Nodeshift 假设您已安装了 oc CLI 客户端,并登录到您的 OpenShift 集群。Nodeshift 还使用 oc CLI 客户端使用的当前项目。
Nodeshift 使用位于项目根的 .nodeshift 文件夹中的资源文件来处理 OpenShift 路由、服务和 DeploymentConfig 创建。Nodeshift 项目页面 提供了 Nodeshift 的更多详细信息。
附录 B. 更新示例应用程序的部署配置 复制链接链接已复制到粘贴板!
示例应用的部署配置包含与在 OpenShift 中部署和运行应用的信息,如路由信息或就绪度探测位置。示例应用程序的部署配置存储在一组 YAML 文件中。对于使用 Fabric8 Maven 插件的示例,YAML 文件位于 src/main/fabric8/ 目录中。对于使用 Nodeshift 的示例,YAML 文件位于 .nodeshift 目录中。
Fabric8 Maven 插件和 Nodeshift 使用的部署配置文件不必是完整的 OpenShift 资源定义。Fabric8 Maven 插件和 Nodeshift 都可以获取部署配置文件,并添加一些缺少的信息来创建完整的 OpenShift 资源定义。Fabric8 Maven 插件生成的资源定义包括在 target/classes/META-INF/fabric8/ 目录中。Nodeshift 生成的资源定义位于 tmp/nodeshift/resource/ 目录中。
先决条件
- 一个现有的 example 项目。
-
安装了
ocCLI 客户端。
流程
编辑现有的 YAML 文件,或使用您的配置更新创建额外的 YAML 文件。
例如,如果您的示例已经配置了
readinessProbe的 YAML 文件,您可以将路径值改为不同的可用路径来检查就绪度:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果现有 YAML 文件中没有配置
readinessProbe,您也可以在同一目录中创建一个新的 YAML 文件,该文件具有readinessProbe配置。
- 使用 Maven 或 npm 部署示例的更新版本。
验证您的配置更新显示在您的示例部署的版本中。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
如果您使用基于 Web 的控制台或 oc CLI 客户端直接更新应用程序的配置,请导出并把这些更改添加到 YAML 文件中。使用 oc export all 命令显示部署的应用程序的配置。
附录 C. 配置 Jenkins 自由项目以使用 nodeshift 部署 Node.js 应用 复制链接链接已复制到粘贴板!
与使用本地主机的 nodeshift 来部署 Node.js 应用类似,您可以将 Jenkins 配置为使用 nodeshift 来部署 Node.js 应用。
先决条件
- 访问 OpenShift 集群。
- 在同一 OpenShift 集群上运行的 Jenkins 容器镜像。
- 在 Jenkins 服务器上安装的 Node.js 插件。
Node.js 应用程序配置为使用 nodeshift 和红帽基础镜像。
使用带有 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_PROJECTCopy 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。 - 在部署前,请考虑添加执行测试的构建步骤。
附录 D. package.json 属性的分类 复制链接链接已复制到粘贴板!
- 1
- 用于运行单元测试的
npm脚本。使用npm 运行测试。 - 2
- 用于将此应用程序部署到 OpenShift Container Platform 的
npm脚本。使用npm 运行 openshift。 - 3
- 用于启动此应用的
npm脚本。使用npm start运行。 - 4
- 使用
npm start运行时应用的主要入口点。 - 5
- 指定要包含在上传到 OpenShift Container Platform 的二进制中的文件。
- 6
- 要从
npmregistry 安装的开发依赖项列表。它们用于测试和部署到 OpenShift Container Platform。 - 7
- 要从
npmregistry 安装的依赖项列表。
附录 E. 额外的 Node.js 资源 复制链接链接已复制到粘贴板!
附录 F. 应用程序开发资源 复制链接链接已复制到粘贴板!
有关使用 OpenShift 进行应用程序开发的更多信息,请参阅:
附录 G. Source-to-Image (S2I)构建过程 复制链接链接已复制到粘贴板!
Source-to-Image (S2I)是一种构建工具,用于从带有应用程序源的在线 SCM 存储库生成可重复生成的 Docker 格式容器镜像。通过 S2I 构建,您可以轻松地将最新版本的应用交付到生产中,并缩短构建时间、减少资源和网络使用量、提高安全性以及许多其他优势。OpenShift 支持多种 构建策略和输入源。
如需更多信息,请参阅 OpenShift Container Platform 文档中的 Source-to-Image (S2I)构建 章节。
您必须在 S2I 流程中提供三个元素来编译最终容器镜像:
- 托管在在线 SCM 存储库中的应用源,如 GitHub。
- S2I Builder 镜像,它充当 assembled 镜像的基础,并提供应用程序在其中运行的生态系统。
- 另外,您还可以提供 S2I 脚本使用的环境变量和参数。
此过程会根据 S2I 脚本中指定的说明将应用程序源和依赖项注入构建器镜像,并生成运行汇编应用程序的 Docker 格式容器镜像。如需更多信息,请参阅 OpenShift Container Platform 文档中的 S2I 构建要求、构建选项 以及如何构建工作 部分。