SAP Commerce Cloud 的构建发生在一个专门的构建环境中,该环境不同于最终的 Commerce Cloud 运行环境上。
二者的差异包括:
- 构建环境具有与 Commerce Cloud 不同的 Credential
- 目录结构不同
- 扩展是由命令行
ant production
打包的,因此它们的结构与构建时不同 - 构建环境可以安装不同的工具,例如 Java 编译器。
- 基础 Docker 镜像不同,因此两个环境的操作系统也可能不同
- 最终环境因为是用于生产用途,需要与必要的资源进行通信,例如数据库、媒体存储、附加服务
- 构建工具本身及其配置,例如 Java 编译器、Maven 配置,旨在仅存在于构建环境中。客户的运行环境,显然不需要 JDK,Maven 这些工具
- 整个软件构建在单个 Docker 容器中,然后在单独的容器中运行
- 机器尺寸可以不同。构建环境仅针对构建这个单一的任务进行了优化
- 环境的位置不同 - 构建环境的出站 IP 地址与 Commerce Cloud 生产环境不同
- 可以应用不同的网络安全规则
- 构建环境未与 Commerce Cloud 运行时组件集成,比如 Solr 服务器或数据库等其他资源,在构建时不可用
构建环境与最终的 Commerce Cloud 环境分离。 这意味着特定于构建的资源(例如 Github 代码存储库)仅可用于构建环境。
同样,特定于最终 Commerce Cloud 环境的资源,例如数据库或媒体存储,对于构建环境不可用。 由于构建与环境无关,因此在构建期间不要存储或涉及任何特定于环境的资源,例如外部系统。
不推荐硬编码绝对路径,例如 /opt/example。 无法保证特定路径保持不变。并且如上述所说,构建环境和最后的运行环境,可能操作系统都完全不一样,而 /opt/example
显然不能在 windows
操作系统工作。