consolidation/site-process

这是一个围绕 Symfony Process 组件的薄包装器,允许应用程序使用 Site Alias 库来指定远程调用的目标。

5.4.0 2024-04-06 00:00 UTC

README

这是一个围绕 Symfony Process 组件的薄包装器,允许应用程序使用 Site Alias 库来指定远程调用的目标。

ci scrutinizer codecov License

概述

Site Process 是围绕 Symfony Process 组件 的薄包装器,允许应用程序使用 Site Alias 库 来指定远程调用的目标。

为了比较,可以通过以下方式创建一个 Process 对象来在本地系统上运行应用程序,使用标准的 Symfony Process 组件 API:

$process = new Process(['ls', '-lsa']);

同样,可以使用通用的 SiteProcess API 来执行远程调用,该 API 通过 ProcessManager 对象访问。

$processManager = ProcessManager::createDefault();
$process = $processManager->siteProcess($site_alias, ['ls', '-lsa', '{root}']);

在此示例中,如果 $site_alias 代表同一系统上的站点,则 ls -lsa 命令将在本地运行。另一方面,如果它代表远程站点,则 ls -lsa 命令将包含一个 ssh 调用到远程系统。在两种情况下,{root} 引用都将被替换为 site alias 命名属性 root 的值。如果命名属性不存在,将抛出异常。

也可以将选项指定为作为第三个参数提供的关联数组。

$process = $processManager->siteProcess($site_alias, ['git', 'status'], ['untracked-files' => 'no']);

这相当于

$process = $processManager->siteProcess($site_alias, ['git', '--untracked-files=no', 'status']);

传输

SSH

包装命令,使其通过 ssh cli 在远程系统上运行。

示例

local:
  host: localhost
  uri: http://localhost
  ssh:
    options: -o PasswordAuthentication=no -i $HOME/.ssh/id_rsa

Vagrant

包装命令,以便通过 vagrant ssh -c 运行。

示例

local:
  uri: http://localhost
  vagrant:

Docker Compose

包装命令,使其通过 docker-compose 在远程系统上运行。

示例

local:
  host: localhost
  uri: http://localhost
  docker:
    service: drupal
    compose:
      version: 1
      options: --project dockerComposeProjectName --file docker-compose.yml --project-directory dockerComposeWorkDir
    exec:
      options: --user www-data

上面的命令将执行以下命令前缀:

docker-compose --project dockerComposeProjectName --file docker-compose.yml --project-directory dockerComposeWorkDir exec --user www-data -T drupal

docker.projectcompose.options --project 做同样的事情,docker.project 在 options 之前存在。

docker.service 是 docker-compose.yml 中服务名称的确切名称。

docker.compose.version 默认为 1。设置为 2 以使用新语法。

docker compose --project dockerComposeProjectName --file docker-compose.yml --project-directory dockerComposeWorkDir exec --user www-data -T drupal

默认行为是使用 docker-compose exec 来调用正在运行的容器中的命令。您可以通过属性 compose.command 将此更改为使用 docker-compose run,对于默认不运行的容器。

有关所有可用选项,请参阅 docker-compose 手册。

本地

在本地系统上运行命令。

运行测试

可以通过一些简单的 composer 脚本在本地运行测试套件。

部署

  • 运行 composer release

贡献

请阅读 CONTRIBUTING.md 以了解向提交拉取请求给我们过程的详细信息。

版本控制

我们使用 SemVer 进行版本控制。有关可用的版本,请参阅 发布 页面。

请注意,仅跳过了 consolidation/site-process 的所有 3.x 版本,以使 4.x 版本与 Symfony 4.x 支持保持一致。

请注意,consolidation/site-process 自身的 API 在 2.x 和 4.x 版本之间是兼容的,因此大多数同时与 Symfony 3 和 Symfony 4 一起工作的客户端应该能够无问题地要求 "consolidation/site-process": "^2 | ^4"

作者

另请参阅参与此项目的贡献者列表

许可证

此项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

致谢