sourcebroker / deployer-extended-typo3
TYPO3 的部署工具。
Requires
- deployer/deployer: ~7.0 || dev-master
- helhum/dotenv-connector: ^2.3 || ^3 || dev-master
- helhum/typo3-console: ^5.5 || ^6 || ^7 || ^8 || dev-master
- sourcebroker/deployer-extended: ^19 || dev-master
- sourcebroker/deployer-extended-database: ^17 || dev-master
- sourcebroker/deployer-extended-media: ^12 || dev-master
- sourcebroker/deployer-loader: ^4 || dev-master
- symfony/dotenv: ^3.3 || ^4 || ^5 || ^6 || dev-master
- dev-master
- 21.0.0
- 20.0.0
- 19.0.0
- 18.1.0
- 18.0.0
- 17.0.0
- 16.1.0
- 16.0.0
- 15.0.0
- 14.1.0
- 14.0.0
- 13.1.0
- 13.0.0
- 12.1.0
- 12.0.0
- 11.0.0
- 10.0.0
- 9.0.0
- 8.0.0
- 7.1.0
- 7.0.1
- 7.0.0
- 6.2.1
- 6.2.0
- 6.1.0
- 6.0.1
- 6.0.0
- 5.2.0
- 5.1.0
- 5.0.1
- 5.0.0
- 4.6.4
- 4.6.3
- 4.6.2
- 4.5.1
- 4.5.0
- 4.4.1
- 4.4.0
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.0
- 4.0.0
- 3.15.2
- 3.15.1
- 3.15.0
- 3.14.1
- 3.14.0
- 3.13.1
- 3.13.0
- 3.12.0
- 3.11.0
- 3.10.0
- 3.9.0
- 3.8.0
- 3.7.2
- 3.7.1
- 3.7.0
- 3.6.1
- 3.6.0
- 3.5.0
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.11.2
- 2.11.1
- 2.11.0
- 2.10.1
- 2.10.0
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.0
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.2
- 1.2.1
- 1.1.1
- 1.1.0
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-08-30 01:32:04 UTC
README
它做什么?
此软件包为使用 deployer (deployer.org) 部署 TYPO3 CMS 提供部署任务。
此 "deploy" 任务依赖于
- sourcebroker/deployer-extended 软件包,该软件包提供一些可用于任何 CMS 的部署任务
此外,此软件包还依赖于两个其他软件包,这些软件包不直接用于部署,但对于数据库和媒体同步很有用
- sourcebroker/deployer-extended-database 软件包,该软件包提供一些与 PHP 框架无关的任务,用于在多个实例之间同步数据库
- sourcebroker/deployer-extended-media 软件包,该软件包提供一些与 PHP 框架无关的任务,用于在多个实例之间同步媒体
安装
使用 composer 安装软件包
composer require sourcebroker/deployer-extended-typo3
建议您在
~/.profile
中添加alias dep="vendor/bin/dep"
,以便能够通过常规dep
命令运行 deployer。否则,您需要像这样运行 deployer:./vendor/bin/dep ...
将以下行放在您的 deploy.php 的开头
require_once(__DIR__ . '/vendor/sourcebroker/deployer-loader/autoload.php'); new \SourceBroker\DeployerExtendedTypo3\Loader();
请从您的 deploy.php 中删除 "deploy" 任务。否则,您将覆盖在
vendor/sourcebroker/deployer-extended-typo3/deployer/default/deploy/task/deploy.php
中定义的部署任务。请参阅 工作配置示例,了解deploy.php
文件可以多么简单。在每个实例中创建
.env
文件,该文件应位于 git 之外,并至少包含INSTANCE
,其名称与在deploy.php
文件中为host()
定义的同名。您也可以使用此文件存储数据库凭据和所有其他针对每个实例而不同的设置。因为deployer-extended-typo3
使用helhum/dotenv-connector
,所以.env
文件中的值将在 TYPO3 中可用,您可以在typo3onf/AdditionalConfiguration.php
中使用它们来设置数据库连接。这样,您可以将typo3onf/LocalConfiguration.php
放入 git。以下是.env
文件的示例TYPO3_CONTEXT='Production//Live' INSTANCE='live' TYPO3__DB__Connections__Default__dbname='t3base11_live' TYPO3__DB__Connections__Default__host='127.0.0.1' TYPO3__DB__Connections__Default__password='password' TYPO3__DB__Connections__Default__port='3306' TYPO3__DB__Connections__Default__user='t3base11_live'
如果您想在每个部署时更新语言文件,请在
deploy_symlink
之前添加任务typo3cms:language:update
。请参阅 #14 了解为什么在每个部署时更新语言标签很有争议,并且通常不建议这样做。before('deploy_symlink', 'typo3cms:language:update');
如果您想让 Deployer 直接从 TYPO3 获取数据库数据而不是从 .env 文件中读取,则设置
set('driver_typo3cms', true);
部署
运行
dep deploy [host]
共享目录
对于 TYPO3 11,共享目录是
set('shared_dirs', function () { return [ get('web_path') . 'fileadmin', get('web_path') . 'uploads', get('web_path') . 'typo3temp/assets/_processed_', get('web_path') . 'typo3temp/assets/images', !empty(get('web_path')) ? 'var/log' : 'typo3temp/var/log', !empty(get('web_path')) ? 'var/transient' : 'typo3temp/var/transient', ]; });
共享文件
TYPO3 11 的共享文件是
set('shared_files', ['.env']);
Composer
您可以使用 composer_channel
(值:1、2、stable、prelive、snapshot)或使用 composer_version
(它接受精确的标签作为参数,例如 https://github.com/composer/composer/tags)来设置正确的 composer 版本。为了稳定性和安全性,建议您将 composer_channel
设置为值 1
或 2
,这样它将自动更新,但不会在将来安装任何新的大版本,因此您的部署将保持相对稳定。默认值为 2
。
set('composer_channel', 2);
同步数据库
数据库同步使用 sourcebroker/deployer-extended-database 完成。
从实时数据库同步到本地实例的命令是
dep db:pull live
如果您已登录到beta实例的ssh,您还可以运行 dep media:pull live
以从 live
获取数据库到 beta
。但您也可以使用以下命令从您本地实例同步 live
到 beta
。
dep db:copy live --options=target:beta
同步媒体
媒体同步使用 sourcebroker/deployer-extended-media 完成。同步的文件夹是 fileadmin
(除 fileadmin/_proccessed_
外)和 uploads
。
从实时到本地实例同步媒体的命令
dep media:pull live
如果您已登录到beta实例的ssh,您还可以运行 dep media:pull live
以从 live
获取媒体到 beta
。但您也可以使用以下命令从您本地实例同步 live
到 beta
。
dep media:copy live --options=target:beta
如果实例位于同一主机上,您可以为每个文件使用符号链接(相当于 cp -rs source destination
)。这样,您可以在预发布实例上节省媒体空间,同时不会意外删除它们!
dep media:link live --options=target:beta
工作配置示例
这是TYPO3 11的工作配置示例。sourcebroker/deployer-extended-typo3
的目的是拥有一个非常瘦的 deploy.php
文件,以便有很好的机会升级到 sourcebroker/deployer-extended-typo3
的未来版本。
<?php namespace Deployer; require_once(__DIR__ . '/vendor/sourcebroker/deployer-loader/autoload.php'); new \SourceBroker\DeployerExtendedTypo3\Loader(); set('repository', 'git@github.com:sourcebrokergit/t3base11.git'); host('live') ->setHostname('vm-dev.example.com') ->setRemoteUser('deploy') ->set('branch', 'master') ->set('bin/php', '/home/www/t3base11-public/live/.bin/php'); ->set('public_urls', ['https://live-t3base11.example.com']) ->set('deploy_path', '/home/www/t3base11/live'); host('beta') ->setHostname('vm-dev.example.com') ->setRemoteUser('deploy') ->set('branch', 'master') ->set('bin/php', '/home/www/t3base11-public/beta/.bin/php'); ->set('public_urls', ['https://beta-t3base11.example.com']) ->set('deploy_path', '/home/www/t3base11/beta'); host('local') ->set('deploy_path', getcwd());
变更日志
请参阅 https://github.com/sourcebroker/deployer-extended-typo3/blob/master/CHANGELOG.rst