应用程序配置的属性
.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。 要在入门和专业版项目中安装并使用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
- Ruby
- Node.js
这些依赖项与应用程序的最终依赖项无关,可以在PATH
、构建过程和应用程序的运行时环境中使用。
您可以按如下方式指定这些从属关系:
ruby:
sass: "~3.4"
nodejs:
grunt-cli: "~0.3"
runtime
用于在运行时修改PHP配置,如启用扩展。 需要以下扩展:
runtime:
extensions:
- xsl
- newrelic
- sodium
有关启用扩展的详细信息,请参阅PHP设置。
disk
定义应用程序的永久磁盘大小(以MB为单位)。
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添加到位置的web
块,可以使挂载Web可访问。
subpath
部分。 此值是files
区域的唯一标识符。 如果更改此名称,则将丢失存储在旧位置的所有站点数据。access
access
属性指明允许通过SSH访问环境的最低用户角色级别。 可用的用户角色包括:
admin
— 可以在环境中更改设置并执行操作;具有 参与者 和 查看器 权限。contributor
— 可以将代码推送到此环境并从环境分支;具有 查看器 权限。viewer
— 只能查看环境。
默认用户角色为contributor
,它限制仅具有 查看器 权限的用户的SSH访问。 您可以将用户角色更改为viewer
,以允许仅具有 查看器 权限的用户进行SSH访问:
access:
ssh: viewer