本篇文档介绍在 KDO 中创建组件的基础流程。
创建方式决策
KDO 会根据构建源的类型选择不同的识别与构建路径:源码和软件包走语言识别,Docker 镜像走镜像元数据解析。
flowchart TD
S[新建组件] --> Q{选择构建源}
Q -->|源代码仓库| SRC[读取仓库根目录特征文件]
SRC --> LANG{识别语言与构建方式}
LANG -->|pom.xml| JAVA[Java Maven 构建]
LANG -->|index.php 或 composer.json| PHP[PHP Composer 构建]
LANG -->|package.json| NODE[NodeJS 构建]
LANG -->|其他特征文件| MORE[Python Golang HTML 等构建]
Q -->|软件包| PKG[上传 Jar War Zip Tar]
PKG -->|Jar 或 War| JAVA
PKG -->|Zip 或 Tar| UNZIP[解压后识别目录文件]
UNZIP --> LANG
Q -->|Docker 镜像| IMG[填写镜像地址与拉取凭据]
IMG --> META[解析环境变量 端口 启动命令]
JAVA --> CFG[配置端口 环境变量 存储]
PHP --> CFG
NODE --> CFG
MORE --> CFG
META --> CFG
CFG --> BUILD[首次构建并部署]
从源码开始创建组件
KDO 会根据源代码根目录下的文件来判断源码的语言类型,目前支持的源码类型有 Java、Python、PHP、NodeJS、.Net、Golang、Html 等。
- 例如源代码目录下有
pom.xml文件,KDO 将会识别为 Java 语言类型的源码。KDO 会根据源码类型自动识别构建方式,比如 Java 语言类型的源码会自动识别为 Maven 构建方式。 - 例如源代码目录下有
requirements.txt文件,KDO 将会识别为 Python 语言类型的源码。KDO 会根据源码类型自动识别构建方式,比如 Python 语言类型的源码会自动识别为 Pip 构建方式。
从软件包创建组件
KDO 支持从软件包创建组件,用户可以通过上传软件包的方式创建组件,KDO 会根据软件包的类型自动识别构建方式。支持上传 Jar、War、Zip、Tar 等软件包。
- 例如 Jar、War 软件包会自动识别为 Java 构建方式。
- 例如 Zip、Tar 软件包在解压后会自动识别目录中的文件,根据文件类型自动识别构建方式。
从 Docker 镜像创建
KDO 支持从 Docker 镜像创建组件,与源码创建流程一样,不同的是提供的构建源信息和类型不同。
- KDO 支持解析镜像层中的元数据,获取镜像的元数据信息,比如镜像的环境变量、端口、启动命令等。
- KDO 支持通过
docker run命令创建组件,用户可以通过docker run命令提供更多参数,比如-e设置环境变量、-p设置端口映射、-v设置数据卷等,这些参数都会被 KDO 解析并应用到组件中。