應用程式設定的屬性
.magento.app.yaml
檔案使用屬性來管理Commerce應用程式的環境支援。
路徑:
"var": "shared:files/var"
"app/etc": "shared:files/etc"
"pub/media": "shared:files/media"
"pub/static": "shared:files/static"
服務:
database: "mysql:mysql"
redis: "redis:redis"
opensearch: "opensearch:opensearch"
name
name
屬性提供在routes.yaml
檔案中使用以定義HTTP上游的應用程式名稱(預設為mymagento:http
)。 例如,如果name
的值為app
,您必須在上游欄位中使用app:http
。
type
和build
type
和build
屬性提供基礎容器影像的相關資訊,以建置和執行專案。
支援的type
語言是PHP。 請依照以下步驟指定PHP版本:
type: php:<version>
build
屬性決定建置專案時預設的情況。 flavor
指定要執行的預設組建工作集。 下列範例顯示來自magento-cloud/.magento.app.yaml
的type
與build
的預設組態:
# The toolstack used to build the application.
type: php:8.3
build:
flavor: none
dependencies:
php:
composer/composer: '2.7.2'
安裝和使用Composer 2
build: flavor:
屬性不用於Composer 2.x;因此,您必須在建置階段期間手動安裝Composer。 若要在您的Starter和Pro專案中安裝及使用Composer 2.x,您必須對.magento.app.yaml
設定進行三項變更:
- 移除
composer
作為build: flavor:
並新增none
。 這項變更導致Cloud無法使用預設的1.x Composer版本來執行組建工作。 - 將
composer/composer: '^2.0'
新增為安裝Composer 2.x的php
相依性。 - 將
composer
組建工作新增至build
鉤點,以使用Composer 2.x執行組建工作。
在您自己的.magento.app.yaml
設定中使用下列設定片段:
# 1. Change flavor to none.
build:
flavor: none
# 2. Add Composer ^2.0 as a php dependency.
dependencies:
php:
composer/composer: '^2.0'
# 3. Add a build hook to run the build tasks using Composer 2.x.
hooks:
build: |
set -e
composer --no-ansi --no-interaction install --no-progress --prefer-dist --optimize-autoloader
如需有關Composer的詳細資訊,請參閱必要的套件。
dependencies
指定您的應用程式在建置流程中可能需要的相關性。
Adobe Commerce支援下列語言的相依性:
- PHP
- 拼音
- Node.js
這些相依性與應用程式的最終相依性無關,可在PATH
、建置程式期間和應用程式的執行階段環境中使用。
您可以依照以下方式指定這些相依性:
ruby:
sass: "~3.4"
nodejs:
grunt-cli: "~0.3"
runtime
使用在執行階段修改PHP組態,例如啟用擴充功能。 需要下列擴充功能:
runtime:
extensions:
- xsl
- newrelic
- sodium
如需啟用擴充功能的詳細資訊,請參閱PHP設定。
disk
定義應用程式的永續性磁碟大小。
disk: 5120
建議的磁碟大小下限為256 MB。 如果您看到錯誤UserError: Error building the project: Disk size may not be smaller than 128MB
,請將大小增加到256 MB。
mounts
和disk
設定。 當您提交票證時,請指出必要的組態變更,並包含更新版本的.magento.app.yaml
檔案。relationships
定義應用程式中的服務對應。
關係name
可用於MAGENTO_CLOUD_RELATIONSHIPS
環境變數中的應用程式。 <service-name>:<endpoint-name>
關聯性對應到.magento/services.yaml
檔案中定義的名稱和型別值。
relationships:
<name>: "<service-name>:<endpoint-name>"
以下是預設關係的範例:
relationships:
database: "mysql:mysql"
redis: "redis:redis"
opensearch: "opensearch:opensearch"
rabbitmq: "rabbitmq:rabbitmq"
如需目前支援的服務型別和端點的完整清單,請參閱服務。
mounts
其索引鍵是相對於應用程式根目錄的路徑的物件。 掛載是磁碟上檔案的可寫入區域。 以下是使用volume_id[/subpath]
語法在magento.app.yaml
檔案中設定的預設掛接清單:
# The mounts that will be performed when the package is deployed.
mounts:
"var": "shared:files/var"
"app/etc": "shared:files/etc"
"pub/media": "shared:files/media"
"pub/static": "shared:files/static"
將掛載新增至此清單的格式如下:
"/public/sites/default/files": "shared:files/files"
shared
— 在環境內的應用程式之間共用磁碟區。disk
— 定義共用磁碟區可用的大小。
mounts
和disk
設定。 當您提交票證時,請指出必要的組態變更,並包含更新版本的.magento.app.yaml
檔案。您可以將掛載網頁新增至位置的web
區塊,使其可供存取。
subpath
部分。 此值是files
區域的唯一識別碼。 如果您變更此名稱,將會遺失所有儲存在舊位置的網站資料。access
access
屬性指出允許SSH存取環境的最低使用者角色層級。 可用的使用者角色包括:
admin
— 可以在環境中變更設定並執行動作;具有 參與者 和 檢視者 許可權。contributor
— 可以將程式碼推送至此環境,並從環境分支;具有 檢視器 許可權。viewer
— 只能檢視環境。
預設的使用者角色為contributor
,這會限制僅具有 檢視者 許可權的使用者的SSH存取。 您可以將使用者角色變更為viewer
,以允許只有 檢視者 許可權的使用者使用SSH存取:
access:
ssh: viewer