thebrickfactory/docksal-hosting-integration

此包最新版本(1.0.31)没有可用的许可信息。

1.0.31 2020-09-02 15:18 UTC

README

本扩展基于出色的 Docksal 项目,通过提供与某些托管提供商和内容管理系统更紧密集成的自定义命令。请参阅项目目标,了解我们试图实现的目标。

有关在哪些用例下运行哪些命令的简要说明,请查看此 Google 文档

项目目标

Docksal 简化了本地站点的搭建。我们希望通过提供以下自定义命令来扩展此功能:

  • 使本地环境与软件版本和设置等紧密匹配。
  • 一旦在一个项目中设置完毕,我们希望其他开发者能够非常容易且快速地使网站完全在本地运行。
  • 使从某些托管提供商拉取最新数据库和用户文件变得简单快捷。
  • 使前端流程(如编译 Sass、处理 JS 等)在 CLI 容器中100%可用。一旦在项目中设置好,所有开发者都可以使用,无需担心在他们的主机计算机上安装这些工具。
  • 提供自定义命令,如重置配置、清除缓存、监视/处理 Sass+JS 等,以加快开发速度。
  • 使每个项目提供自定义变得简单,同时通过 composer 保持轻松更新核心代码的能力。

如果您有一个位于 Drupal 7、Drupal 8 或 Wordress 上,且托管在 Platform.sh 或 Pantheon 的项目,这将是一个很好的选择。如果您只需要快速设置本地开发站点进行测试,我建议使用 Docksal 的 fin project create 命令。

以下是一些命令与连接到 Platform.sh 的 Drupal 8 站点一起使用的方式

Example #1

Example #2

支持的主机提供商

  • Platform.sh
  • Pantheon
  • WPEngine
  • 其他:默认情况下不提供从主机提供商拉取数据库和用户文件的功能,但使为非支持的主机本地运行变得简单。

支持的内容管理系统

  • Drupal 8
  • Drupal 7
  • Wordpress

项目设置

如果 Docksal 已经在一个项目中设置并包含在存储库中,请按照以下步骤轻松运行。

安装 Docksal

您只需要在首次安装 Docksal 后进行一次。

前往 安装 Docksal 文档,并按照 macOS with VirtualBox 下的说明进行操作。安装 Docksal 后,您可以通过运行 fin update 下载最新版本。

如果您的机器上装有超过8GB的RAM,建议您通过运行 fin vm ram 4096 命令来增加Docksal的RAM大小,请参阅如何设置Docksal虚拟机内存。这并不是必须的,但可能会让事情运行得更快。

如果您在Platform.sh或Pantheon上有项目,您需要为每个服务创建和设置全局令牌。请参阅platform api令牌文档pantheon机器令牌文档了解如何生成这些令牌。然后使用以下命令中的令牌值。这些全局变量只需设置一次,而不需要为每个项目设置。

Platform.sh令牌: fin config set --global SECRET_PLATFORMSH_CLI_TOKEN="[TOKEN]"

Pantheon令牌: fin config set --global SECRET_TERMINUS_TOKEN="[TOKEN]"

重启计算机

安装Docksal后,在重启计算机(或从头开始)时,请确保运行 fin system start

Docksal 项目的启动

如果您是第一次在这个项目上启动docksal,但已经检查出了项目,建议您首先删除repo文件,然后重新检出代码。这样就可以删除可能已经存在的本地设置文件,并从该repo复制默认设置文件。此时,您可以重新复制您想要包含在从.docksal目录复制的设置文件中的任何配置。

  1. 如果您还没有安装Docksal,请现在安装。否则请跳过。
  2. 如果您自上次重启以来还没有运行过 fin system start,请现在运行。否则请跳过。
  3. 检出项目代码,然后 cd 进入项目目录。
  4. 运行: fin p start。注意它在结束时显示的URL。
  5. 运行: fin data。这将运行所有设置步骤。
  6. 本地站点应该可以加载!

查看Drush + WP CLIMysqlDocksal基本命令自定义命令部分,以获取更多关于如何与项目交互的详细信息。

完成以上步骤后,您回到项目时只需运行 fin p start。如果您用 fin p remove 删除了项目,则需要再次运行 fin data(或如果您想获取最新的db)。

要停止项目运行,请运行 fin p stop。您不会丢失数据库或文件。您可以同时运行多个项目。

在项目上切换分支或拉取更改时,您需要运行 fin local。这将确保您的db配置与代码匹配并清除Drupal缓存。

初始项目设置

如果您需要在项目上设置Docksal(无论是新构建还是现有站点),请按照以下步骤操作。您只需为每个项目做一次。这假设您正在使用composer。

如果您要将此集成到现有的项目repo中,可能需要先从计算机上删除repo文件夹,然后重新克隆...只是为了确保删除任何可能存在的本地设置文件。如果您将这些本地设置文件提交到了repo中,您需要先删除它们。

如果还没有composer.json文件,您首先需要在项目根目录中使用composer init创建一个基本的文件。不要添加那些设置步骤中的任何依赖项。

  1. 将以下“脚本”添加到您的composer.json文件中。这确保了它将docksal文件复制到.docksal文件夹,并且当通过composer添加时,文件将得到正确更新。

     {
         "scripts": {
             "post-update-cmd": ["vendor/bin/docksal-hosting-integration-install-update"],
             "post-install-cmd": ["vendor/bin/docksal-hosting-integration-install-update"]
         }
     }
    
  2. 使用composer安装项目:composer require --dev thebrickfactory/docksal-hosting-integration。您应该会看到更新了.docksal文件!并且您应该在项目根目录中有一个.docksal目录。

  3. 更新.docksal/docksal-local.env中的变量。阅读所有选项!这些更改不会被更新覆盖。要更新php.ini设置、默认drupal/wp设置文件或在此项目的一些自定义命令期间运行代码,请参阅覆盖说明文档
  4. 提交更新了此项目的.docksal.gitignore和composer文件。
  5. 按照上面的Docksal项目的启动步骤进行。

Drush + WP CLI

您可以使用fin drush运行drush命令。例如:fin drush crfin drush cc all。如果fin drush无法从项目根目录连接到drupal网站,请进入文档根文件夹,然后从那里尝试。

对于WP网站,您可以使用fin wp运行WP CLI命令。例如:fin wp cache flush

Mysql

Adminer已安装。在您完成项目设置后,您可以通过http://adminer.[site].docksal访问它。您可以使用fin vhosts查看项目中所有可用的URL列表,包括adminer URL。

以下是mysql凭证:

数据库用户:用户
数据库密码:用户
数据库名称:默认

如果您在mac上安装了Sequelpro,可以运行fin sequelpro,它将打开该程序并连接到项目数据库。

电子邮件

默认情况下,电子邮件通过Mail Hog发送。所有电子邮件都将通过http://mail.[site].docksal发送和访问。如果您想要将电子邮件发送到指定的电子邮件地址进行测试,可以从那里“释放”电子邮件(但您将不得不连接到SMTP服务器)。这对于在本地测试发送的电子邮件很有用。

Solr

要使您的本地环境与solr协同工作,您需要遵循以下步骤。这是一个您需要执行的一般工作流程。

  1. 在主机开发环境中安装并配置必要的solr drupal模块(搜索API、搜索API Solr、搜索API页面和搜索API Override for D7)。这包括配置服务器和索引。请确保导出那里使用的配置,以便将其放入代码中。
  2. 打开.docksal/docksal-local.yml文件,取消以下代码的注释取消以下代码的注释,并“services:”上面的代码以启用solr。运行fin p restart以便容器启动。
  3. 更新您的settings.local.php文件以与solr协同工作。请参阅这里的solr部分了解如何配置。
  4. 您的本地docksal网站现在应该能够访问solr服务器,并且您应该能够通过solr的管理界面索引内容。

注意:对于D7D8,您需要遵循的精确步骤在相应的默认settings.local.php文件底部,包括更新配置以在Docksal中正确与solr协同工作的代码。

Docksal 基本命令

以下是您需要了解的主要Docksal命令列表。我将相关的命令分组在每一行中。您始终可以运行fin help来查看所有命令+自定义命令的列表。

  1. fin system start / fin system stop / fin vm restart:如果您没有使用本地的docker选项,这将启动/设置虚拟盒中的虚拟机。您将在计算机重启后启动此操作,但每个项目只需要启动一次。
  2. fin p start / fin p stop / fin p restart:您需要在Docksal项目仓库目录内运行这些命令。这将启动docker镜像。停止/重启命令不会清除docker容器中的数据。我注意到的一点是,如果您已经设置了Docksal项目,并且该项目未运行,当您在浏览器中访问该项目的Docksal网址时,它将自动启动项目。
  3. fin p remove:这将删除该项目的docker镜像,您将失去docker镜像中的数据库和数据。只有在您遇到本地站点问题或想要从头开始项目时,才需要运行此命令。
  4. fin bash:这可以访问项目的cli docker镜像。从这里,您可以直接在docker镜像上运行平台、drush、wp、node、gulp、yarn、composer等。
  5. fin sequelpro:如果您在mac上安装了SequelPro,这将启动程序并直接连接到项目数据库。
  6. fin p create:使用Docksal样板库快速设置本地站点。您可以轻松设置drupal 8、drupal 7等。但我们不将其作为新项目设置的一部分。
  7. fin update:更新Docksal和基本docker镜像。
  8. fin pl:列出所有正在运行的Docksal项目(已启动的项目)。
  9. fin stop --all:停止所有正在运行的Docksal项目。这不会删除这些项目上的任何数据。

自定义命令

我们创建了自定义命令以使您的操作更简单。

  • fin data:这是在首次设置项目或想要获取最新的数据库+用户文件时运行的主要命令。如果它们已存在,它将清除数据库+用户文件!它下载数据库+用户文件,运行fin initfin local(无参数时,它使用在docksal-local.env文件中设置的默认环境)。您可以发送一些选项
    • fin data db:运行构建+仅导入最新的数据库。
    • fin data files:运行构建+仅导入用户文件。
    • fin data [环境]:运行构建并从特定环境导入数据库+用户文件。例如:fin data master
  • fin init:运行构建,包括composer install、yarn install并在服务器上安装依赖项。fin data将自动运行此命令。
  • fin local:这会将您的数据库配置重置为代码中的内容并清除缓存。当您切换分支或从仓库拉取新代码时,您需要运行此命令。这会在fin data中自动运行。
  • fin import-db:从环境导入数据库。无参数时,使用在docksal-local.env文件中设置的默认环境。您可以发送一些选项
    • fin import-db [环境]:从特定环境导入数据库并使用缓存的数据库(如果有)。例如:fin import-db master
    • fin import-db [环境] true:从特定环境导入数据库并将下载最新的数据库。例如:fin import-db master true
  • fin import-user-files:下载用户文件。您可以发送环境选项。
    • fin import-user-files [环境]:从特定环境下载用户文件。例如:fin import-user-files master
  • 实用命令:还有一些其他命令是为与某些类型的网站或托管提供商一起使用而设计的。
    • fin drush [命令]:在 Drupal 网站上运行 drush 命令。
    • fin wp [命令]:在 WordPress 网站上运行 WP CLI 命令。
    • fin watch:在主题目录中运行 yarn start
    • fin gulp [命令]:在主题目录中运行 gulp。
    • fin yarn [命令]:在主题目录中运行 yarn 命令。
    • fin deploy [环境]:将代码推送到托管环境。这将执行 git force push。如果您的主要仓库在 bitbucket/github,并且网站托管在 Platform.sh 或 Pantheon,则非常有用。

更新 Docksal 托管集成

要更新 .docksal 文件到最新代码,请更新 composer.json 文件中的版本,然后运行 composer update thebrickfactory/docksal-hosting-integration。您的项目配置文件和覆盖文件不应被删除。您可以在 composer.json 文件中设置要使用的特定版本。您还可以通过运行 fin update 来更新 Docksal。

主机类型:其他

这是一个特殊的托管类型,因为它不是设计为自动下载数据库 + 用户文件。然而,当它检测到这些文件时,它会设置导入这些数据。

  • db/db.sqldb/db.sql.gz
  • db/files.tar.gz:文件目录的内容应直接在这个压缩文件中。

此托管类型的其他所有内容与其他托管类型的工作方式相同,并且它提供了一个回退选项,如果您正在处理一个不支持的主机类型的网站。您也可以创建覆盖命令以自动以不同的方式获取此数据。

xDebug

在您的 docksal-local.env 文件中,将 XDEBUG_ENABLED 更新为 1。然后运行 fin p restart

我们推送了 .vscode/launch.json,它配置了 vscode 使用 xdebug。您只需添加一个断点然后启动 xdebug 的 监听 Docksal 上的 XDebug。您需要安装 PHP Debug vscode 扩展。

请注意,上面的内容应该可以让 xdebug 工作起来,但它可能会使您的网站速度大大减慢。因此,您应该在尝试解决编码问题时才启用 xdebug。