SAP Commerce Cloud 中的构建过程会根据您的代码存储库中的信息构建您的最终软件。
Commerce Cloud 中的构建过程负责多项操作。
这些操作包括:
- 使用项目自定义克隆 Git 存储库。
- 下载所需的工件。
- 应用自定义。
- 构建最终的软件。
- 将软件打包到 Docker 镜像中。
- 将图像上传到 Docker 注册表。
- 返回有关要在目标 Commerce Cloud 环境中启用的服务的信息。
构建过程需要考虑几个自定义设置。
这些自定义设置包括:
- core commerce
- Data Hub
- Javascript storefront
每个自定义设置都使用项目代码存储库中的单独目录,从 repository-root 出发。
- core-customize
- datahub
- js-storefront
构建过程在开始时确定每个镜像的预期内容的哈希码。
它需要考虑多方面的因素,例如:
- artifacts 版本。
- 基本镜像版本。
- 项目代码存储库的内容。
然后它检查在 Docker 注册表中是否可以使用带有此类哈希标记的镜像:
- 如果可用 - 将跳过镜像构建并在部署中使用现有镜像。
- 如果它不可用 - 执行完整镜像构建并在部署中使用新镜像。
构建过程中,会生成下列镜像。
For core commerce customization:
- Platform
- Solr
For Data Hub customization (optional):
- Data Hub
For Javascript storefront (optional):
- Javascript storefront with static content.
- Javascript storefront with server-side rendering.
构建过程组成了部署期间使用的服务和 Docker 镜像的列表。 有些服务是可选的,无法自定义的镜像版本是确定的。
服务及其镜像的最终列表如下所示:
- Accelerator storefront service → customized Platform image
- Backoffice service → customized Platform image
- Admin service → customized Platform image
- API service → customized Platform image
- Solr service → customized Solr image
- Zookeeper service → customized Zookeeper image
- Image-processing service → image-processing image
- Data Hub service → customized Data Hub image
- Javascript storefront service → customized Javascript storefront image
- Javascript storefront *** service → customized Javascript storefront *** image
该构建与环境无关,这意味着同一个构建可以与多个 Commerce Cloud 环境一起使用。 这种方法的优点是在开发或暂存环境中测试的相同代码被部署到生产环境中。
与环境紧密相连的设置包括:
- Domain names.
- IP address.
- SSL certificates.
- URLs or credentials to resources (database, media storage).
- URLs or credentials to any external systems.
- Credentials for technical users.
- Machine size or available amount of resources (CPU, memory).
此类设置无法出现在最终构建中,因为它将构建与特定环境结合在一起。
环境角色影响环境性能和环境的目的。 一般规则是生产环境比 staging 环境快,staging 环境比开发快。 环境可以有不同的配置,例如不同的服务属性。
在执行部署时考虑环境的目的。建议:
- 执行一次构建。构建与环境无关。
- 将构建部署到所有环境,从开发开始,然后登台,最后到生产。
- 在将构建提升到下一个环境之前,在每个环境上测试构建。
构建环境与最终的 Commerce Cloud 环境分离。 这意味着特定于构建的资源(例如工件存储库)仅可用于构建环境。
同样,特定于最终 Commerce Cloud 环境的资源(例如数据库或媒体存储)对于构建环境不可用。 由于构建与环境无关,因此在构建期间不要存储或涉及任何特定于环境的资源,例如外部系统。