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
作業系統工作。