应用程序配置的属性

.magento.app.yaml文件使用属性来管理Commerce应用程序的环境支持。

名称
描述
默认
必填
access
自定义用户角色
crons
更新规格并安排cron作业
dependencies
启用其他依赖项
php:composer/composer: '2.2.4'
disk
定义永久磁盘大小
5120
firewall
(仅限起始者)控制出站流量
hooks
自定义生成、部署和部署后阶段的shell命令
mounts
设置路径

路径:

  • "var": "shared:files/var"
  • "app/etc": "shared:files/etc"
  • "pub/media": "shared:files/media"
  • "pub/static": "shared:files/static"
name
定义应用程序名称
mymagento
relationships
映射服务

服务:

  • database: "mysql:mysql"
  • redis: "redis:redis"
  • opensearch: "opensearch:opensearch"
runtime
运行时属性包含Commerce应用程序所需的扩展。

扩展:

  • xsl
  • newrelic
  • sodium
type
设置基本容器图像
php:8.3
variables
为特定Commerce版本应用环境变量
web
处理外部请求
workers
处理外部请求
是(如果未使用Web属性)

name

name属性提供routes.yaml文件中用于定义HTTP上游的应用程序名称(默认情况下,mymagento:http)。 例如,如果name的值为app,则必须在上游字段中使用app:http

WARNING
部署应用程序后,请勿更改该应用程序的名称。 这样做会导致数据丢失。

typebuild

typebuild属性提供有关要生成和运行项目的基本容器映像的信息。

支持的type语言是PHP。 按如下方式指定PHP版本:

type: php:<version>

build属性确定构建项目时默认执行的操作。 flavor指定要运行的默认生成任务集。 以下示例显示了magento-cloud/.magento.app.yamltypebuild的默认配置:

# 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配置进行三项更改:

  1. 移除composer作为build: flavor:并添加none。 此更改会阻止Cloud使用默认的1.x版本的Composer来运行构建任务。
  2. 添加composer/composer: '^2.0'作为安装Composer 2.x的php依赖项。
  3. 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。

NOTE
对于Pro暂存环境和生产环境,您必须提交Adobe Commerce支持票证以更新应用程序的mountsdisk配置。 提交票证时,请指示所需的配置更改并包含.magento.app.yaml文件的更新版本。
暂时无法在暂存或生产环境中增加磁盘存储;此过程不可逆。

relationships

定义应用程序中的服务映射。

关系nameMAGENTO_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 — 定义共享卷的可用大小。
NOTE
对于Pro暂存环境和生产环境,您必须提交Adobe Commerce支持票证以更新应用程序的mountsdisk配置。 提交票证时,请指示所需的配置更改并包含.magento.app.yaml文件的更新版本。

通过将挂载Web添加到位置的web块,可以使挂载Web可访问。

WARNING
一旦您的站点包含数据,请不要更改装载名称的subpath部分。 此值是files区域的唯一标识符。 如果更改此名称,则将丢失存储在旧位置的所有站点数据。

access

access属性指明允许通过SSH访问环境的最低用户角色级别。 可用的用户角色包括:

  • admin — 可以在环境中更改设置并执行操作;具有​ 参与者 ​和​ 查看器 ​权限。
  • contributor — 可以将代码推送到此环境并从环境分支;具有​ 查看器 ​权限。
  • viewer — 只能查看环境。

默认用户角色为contributor,它限制仅具有​ 查看器 ​权限的用户的SSH访问。 您可以将用户角色更改为viewer,以允许仅具有​ 查看器 ​权限的用户进行SSH访问:

access:
    ssh: viewer
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26