Node.js 运行时指南
使用 Node.js 18 开发在 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.1. 其他资源
- 有关如何启用 FIPS 模式安装 RHEL 的更多信息,请参阅 安装启用了 FIPS 模式的 RHEL 8 系统。
- 有关如何在安装 RHEL 后如何启用 FIPS 模式的更多信息,请参阅 将系统切换到 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);
-
保存
app.js
文件。
验证
在 Node.js 项目中,运行
app.js
文件:node app.js
如果启用了 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
这是应用的根目录。
使用
npm
初始化应用程序。本例的其余部分假定入口点是
app.js
,在运行npm init
时会提示您输入设置。$ cd myApp $ npm init
在名为
app.js
的新文件中创建入口点。app.js
示例const http = require('http'); const server = http.createServer((request, response) => { response.statusCode = 200; response.setHeader('Content-Type', 'application/json'); const greeting = {content: 'Hello, World!'}; response.write(JSON.stringify(greeting)); response.end(); }); server.listen(8080, () => { console.log('Server running at http://localhost:8080'); });
启动应用程序。
$ node app.js Server running at http://localhost:8080
使用
curl
或浏览器,验证您的应用程序是否在http://localhost:8080
中运行。$ curl http://localhost:8080 {"content":"Hello, World!"}
附加信息
- 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
将
openshift
和start
条目添加到package.json
中的scripts
部分。{ "name": "myApp", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "openshift": "nodeshift --expose --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12", "start": "node app.js", ... } ... }
openshift
脚本使用nodeshift
将应用部署到 OpenShift。注意通用基础镜像和 RHEL 镜像可用于 Node.js。有关镜像名称的更多信息,请参阅 Node.js 发行注记。
可选 :在
package.json
中添加files
部分。{ "name": "myApp", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { ... }, "files": [ "package.json", "app.js" ] ... }
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。
先决条件
-
安装了
oc
CLI 客户端。 -
npm
已安装。 - 在配置路由时,确保应用程序使用的所有端口被正确公开。
流程
使用
oc
客户端登录您的 OpenShift 实例。$ oc login ...
使用
nodeshift
将应用部署到 OpenShift。$ npm run openshift
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
从应用的根目录部署应用。
$ node app.js Server running at http://localhost:8080
验证步骤
使用
curl
或浏览器验证您的应用程序是否在http://localhost:8080
中运行$ curl http://localhost:8080
第 3 章 调试基于 Node.js 的应用
本节介绍调试基于 Node.js 的应用程序,并在本地和远程部署中使用调试日志。
3.1. 远程调试
要远程调试应用,您需要以调试模式启动它,并为它附加一个调试器。
3.1.1. 在本地启动应用程序并附加原生调试器
原生调试器允许您使用内置的调试客户端调试基于 Node.js 的应用。
先决条件
- 要调试的应用程序。
流程
在启用了 debugger 的情况下启动应用。
原生调试器会自动附加,并提供调试提示。
启用调试器的示例应用
$ node inspect app.js < Debugger listening on ws://127.0.0.1:9229/12345678-aaaa-bbbb-cccc-0123456789ab < For help see https://nodejs.org/en/docs/inspector < Debugger attached. ... debug>
如果您的应用程序具有不同的入口点,则需要更改命令来指定该入口点:
$ node inspect path/to/entrypoint
例如,当使用 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 path/to/entrypoint
例如,当使用 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
将应用程序的部署配置中的
NODE_ENV
环境变量设置为development
以启用调试。例如:$ oc set env dc/MY_APP_NAME NODE_ENV=development
如果应用程序没有设置为在配置更改时自动重新部署,请重新部署它。例如:
$ oc rollout latest dc/MY_APP_NAME
配置从本地机器到应用程序 pod 的端口转发:
列出当前运行的 pod 并查找包含应用程序的 pod:
$ oc get pod NAME READY STATUS RESTARTS AGE MY_APP_NAME-3-1xrsp 0/1 Running 0 6s ...
配置端口转发:
$ oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5858
在这里,
$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-
3.2. 调试日志记录
调试日志记录是在调试时向应用程序日志添加详细信息的方法。这可让您:
- 在应用正常操作期间保留最少的日志输出,以提高可读性并减少磁盘空间使用率。
- 在解决问题时,查看有关应用程序内部工作的详细信息。
3.2.1. 添加调试日志记录
本例使用 debug 软件包,但还有其他软件包 可以处理调试日志。
先决条件
- 您有一个要调试的应用程序。
流程
添加
debug
日志记录定义。const debug = require('debug')('myexample');
添加 debug 语句。
app.use('/api/greeting', (request, response) => { const name = request.query ? request.query.name : undefined; //log name in debugging debug('name: '+name); response.send({content: `Hello, ${name || 'World'}`}); });
将 debug 模块添加到
package.json
。... "dependencies": { "debug": "^3.1.0" }
根据您的应用程序,可能已经包含此模块。例如,在使用 express 生成器 创建应用程序时,
debug
模块已添加到package.json
中。安装应用依赖项。
$ npm install
3.2.2. 访问 localhost 上的调试日志
在启动应用时,请使用 DEBUG
环境变量来启用调试日志记录。
先决条件
- 具有调试日志的应用程序。
流程
在启动应用时设置
DEBUG
环境变量以启用调试日志记录。$ DEBUG=myexample npm start
debug
模块 可以使用通配符 来过滤调试消息。这使用DEBUG
环境变量进行设置。测试应用来调用调试日志记录。
例如,以下命令基于示例 REST API 级别 0 应用程序,其中 debug 日志记录被设置为在
/api/greeting
方法中记录name
变量:$ curl http://localhost:8080/api/greeting?name=Sarah
查看应用程序日志以查看您的调试信息。
myexample name: Sarah +3m
3.2.3. 访问 OpenShift 上的 Node.js 调试日志
使用 OpenShift 中的应用容器集中的 DEBUG
环境变量来启用调试日志记录。
先决条件
- 具有调试日志的应用程序。
-
安装了
oc
CLI 客户端。
流程
使用
oc
CLI 客户端登录 OpenShift 实例。$ oc login ...
将应用部署到 OpenShift。
$ npm run openshift
此操作运行
openshift
npm 脚本,它将嵌套对 nodeshift 的直接调用。查找 pod 的名称,并按照日志监视它启动。
$ oc get pods .... $ oc logs -f pod/POD_NAME
重要pod 启动后,让此命令保持运行,并在新的终端窗口中执行剩余的步骤。这可让您 跟踪 日志并查看组成的新条目。
测试应用。
例如,以下命令基于示例 REST API 级别 0 应用程序,其中 debug 日志记录被设置为在
/api/greeting
方法中记录name
变量:$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
- 返回到 pod 日志,并注意日志中没有 debug 日志信息。
设置
DEBUG
环境变量以启用调试日志记录。$ oc get dc ... $ oc set env dc DC_NAME DEBUG=myexample
返回到 pod 日志,以观察更新推出。
推出更新后,您的 Pod 将停止,您将不再遵循日志。
查找新 pod 的名称并按照日志进行操作。
$ oc get pods .... $ oc logs -f pod/POD_NAME
重要pod 启动后,让此命令保持运行,并在不同的终端窗口中执行剩余的步骤。这可让您 跟踪 日志并查看组成的新条目。具体来说,日志将显示您的调试信息。
测试应用来调用调试日志记录。
$ oc get routes ... $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
返回到 pod 日志以查看 debug 信息。
... myexample name: Sarah +3m
要禁用调试日志记录,请从 pod 中删除 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 项目。
-
安装了
oc
CLI 客户端。
流程
编辑现有的 YAML 文件,或使用您的配置更新创建额外的 YAML 文件。
例如,如果您的示例已经配置了
readinessProbe
的 YAML 文件,您可以将路径
值改为不同的可用路径来检查就绪度:spec: template: spec: containers: readinessProbe: httpGet: path: /path/to/probe port: 8080 scheme: HTTP ...
-
如果现有 YAML 文件中没有配置
readinessProbe
,您也可以在同一目录中创建一个新的 YAML 文件,该文件具有readinessProbe
配置。
- 使用 Maven 或 npm 部署示例的更新版本。
验证您的配置更新显示在您的示例部署的版本中。
$ oc export all --as-template='my-template' apiVersion: template.openshift.io/v1 kind: Template metadata: creationTimestamp: null name: my-template objects: - apiVersion: template.openshift.io/v1 kind: DeploymentConfig ... spec: ... template: ... spec: containers: ... livenessProbe: failureThreshold: 3 httpGet: path: /path/to/different/probe port: 8080 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 ...
其他资源
如果您使用基于 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 ...
- 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
将
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 属性的分类
{ "name": "nodejs-rest-http", "version": "4.0.0", "author": "Red Hat, Inc.", "license": "Apache-2.0", "scripts": { "pretest": "eslint --ignore-path .gitignore .", "test": "nyc --reporter=lcov mocha", 1 "prepare": "echo 'To confirm CVE compliance, run \"npm audit\"' ", "release": "standard-version -a", "openshift": "nodeshift --dockerImage=registry.access.redhat.com/ubi8/nodejs-16", 2 "start": "node ." 3 }, "main": "./bin/www", 4 "standard-version": { "scripts": { "postbump": "npm run postinstall && node release.js", "precommit": "git add .openshiftio/application.yaml" } }, "repository": { "type": "git", "url": "git://github.com/nodeshift-starters/nodejs-rest-http.git" }, "files": [ 5 "package.json", "app.js", "public", "bin", "LICENSE" ], "bugs": { "url": "https://github.com/nodeshift-starters/nodejs-rest-http/issues" }, "homepage": "https://github.com/nodeshift-starters/nodejs-rest-http", "devDependencies": { 6 "eslint": "^7.32.0", "eslint-config-semistandard": "^16.0.0", "js-yaml": "^4.1.0", "mocha": "^9.1.3", "nodeshift": "~8.6.0", "nyc": "~15.1.0", "standard-version": "^9.3.2", "supertest": "~6.1.6" }, "dependencies": { 7 "body-parser": "~1.19.0", "debug": "^4.3.3", "express": "~4.17.1", "pino": "^7.5.1", "pino-debug": "^2.0.0", "pino-pretty": "^7.2.0" } }
- 1
- 用于运行单元测试的
npm
脚本。使用npm 运行测试
。 - 2
- 用于将此应用程序部署到 OpenShift Container Platform 的
npm
脚本。使用npm 运行 openshift
。 - 3
- 用于启动此应用的
npm
脚本。使用npm start
运行。 - 4
- 使用
npm start
运行时应用的主要入口点。 - 5
- 指定要包含在上传到 OpenShift Container Platform 的二进制中的文件。
- 6
- 要从
npm
registry 安装的开发依赖项列表。它们用于测试和部署到 OpenShift Container Platform。 - 7
- 要从
npm
registry 安装的依赖项列表。
附录 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 构建要求、构建选项 以及如何构建工作 部分。