mwltr / magedeploy2-base
使用 Robo 和 Deployer 的 Magento2 部署设置
Requires
- consolidation/robo: ^1.0
- deployer/deployer: ^6.0
- mwltr/magedeploy2: ^2.0
- n98/n98-deployer: ^3.0
README
使用 Robo 和 Deployer 的 Magento2 部署设置。这是您应该基于其进行部署的基础项目。它提供了一个可配置和可定制的设置,用于创建 Magento2 的推送部署。
入门
要求
- deployer/deployer
- consolidation/robo
- mwltr/magedeploy2
- netz98/n98-deployer
先决条件
MageDeploy2 需要您的系统上有 deployer 和 robo。
这些工具可以作为全局工具使用,也可以添加到您的本地 composer.json 作为要求。
这些工具的路径可以在 magedeploy2.php 中进行配置
此外,还需要 gtar
(gnu-tar),它可以通过 brew 安装
brew install gnu-tar
安装
创建一个新的部署设置
composer create-project mwltr/magedeploy2-base <dir>
Robo 需要通过 composer 进行安装,否则无法使用自定义任务。请参阅 Robo 文档 包括附加任务
配置部署
此工具假设您有一个包含 magento composer.json 的 git 仓库。此外,您的本地构建环境可以克隆该仓库并使用 composer 下载 Magento 包。
MageDeploy2 配置
要配置 MageDeploy2,请使用以下命令
./vendor/bin/robo config:init
它将引导您完成最重要的配置选项。不用担心,您稍后可以编辑 magedeploy2.php。
接下来,运行
./vendor/bin/robo validate
以验证您的构建环境是否已设置。
设置本地构建环境
如果您已完成 magedeploy2.php
中的配置,您可以检查您的构建环境是否可以设置。要这样做,请运行以下命令
./vendor/bin/robo deploy:magento-setup develop
您可以根据您的 git 仓库设置使用不同的分支。
在 Magento-setup 运行成功后,现在您可以通过运行以下命令生成资源
./vendor/bin/robo deploy:artifacts-generate
在此命令完成后,您应该在 shop
下方看到包。
到此为止,我们确信本地构建设置是有效的,现在我们可以继续发布我们的项目。
Deployer 配置
在安装和配置 magedeploy2 后,您需要编辑 deploy.php
文件以适应您的需求。为了评估,我们将创建一个本地部署目标。要做到这一点,请运行以下命令
cp config/local.php.dist config/local.php
并根据您的本地部署目标设置配置值。
检查 deploy.php
中的配置,并将其调整到您的需求。默认配置和任务定义在 \N98\Deployer\Recipe\Magento2Recipe
中。您也可以查看所有配置的 Deployer 文档
设置部署目录树
在设置完配置后,您现在可以初始化部署目标的目录树,运行以下命令
./vendor/bin/dep deploy:prepare local
这将在您的本地部署目标上创建所需的目录。
设置部署目标(可选)
如果您想设置部署目标,也可以使用以下命令
./vendor/bin/dep server:setup local
它将进行初始部署,将代码推送到部署目标。
完成此操作后,导航到您的本地 deploy_path
并运行 magento 安装命令以设置数据库。这可能看起来像这样
cd <deploy_path>
php bin/magento setup:install --db-host=127.0.0.1 --db-name=magedeploy2_dev_test_1_server --db-user=root --admin-email=admin@mwltr.de
--admin-firstname=Admin --admin-lastname=Admin --admin-password=admin123 --admin-user=admin
--backend-frontname=admin --base-url=http://magedeploy2_dev --base-url-secure=https://magedeploy2_dev
--currency=EUR --language=en_US --session-save=files --timezone=Europe/Berlin --use-rewrites=1
现在我们已经在部署目标上有了Magento数据库和配置,可以继续进行最后一步。
部署项目
在这个阶段,您已经设置了构建环境和目标环境,可以开始实际的部署。您可以通过运行以下命令来这样做:
./vendor/bin/dep deploy local
恭喜,您已成功设置部署管道并运行了第一次部署!
配置文件
magedeploy2.php
这是设置部署所需所有参数的配置文件。
最常见的设置需要根据项目进行调整
- deploy/git_url (git仓库的路径)
- deploy/themes (需要生成的主题)
- build/db (构建环境的数据库设置)
完整的配置选项列表请见下文。
env
deploy
build/db
包含在部署过程中创建和更新本地Magento设置的数据库配置。
deploy.php
此文件用于将项目实际部署到服务器。它有一个基本的设置,应在大多数环境中正常工作。您也可以根据需要调整它。省略不需要的步骤,添加新的,替换现有的等。
deploy.php
使用N98\Deploy\Recipe\Magento2Recipe
作为基本配方,并覆盖了一些默认设置。
服务器配置使用config/*.php
文件定义。
自定义项目更改
通用
将所有ADD_XXX替换为您的要求。
要自定义和检查的文件
.ssh/config
默认情况下,此部署使用具有ssh-config文件的本地ssh客户端。它需要在.ssh/config
中定义,并且需要与config
下的服务器配置匹配。
注意
.ssh/config
中的主机名必须是IP地址,否则在部署过程中将发生错误。
.ssh/known_hosts
也可以在这个目录下添加已知主机列表:.ssh/known_hosts
,例如可以在此处添加密钥:
- 127.128.129.130 ssh-rsa {长公钥}
- 127.128.129.131 ssh-rsa {长公钥2}
config/*
请查看config/production.php
和config/staging.php
,并根据需要进行更改。
Jenkinsfile
Jenkinsfile定义了Jenkins Pipeline。它需要根据项目需求进行调整。
deploy.php
deploy.php
是主入口点,可以用来进行自定义。
入门
使用composer install
安装依赖项
使用./dep deploy staging
开始部署
命令
config:init
生成新的magedeploy2.php。请注意:这将覆盖您现有的配置
validate
验证
- bin配置值可执行
- git仓库可访问
deploy
触发具有所有阶段的部署
deploy:magento-setup
运行magento-setup阶段中的所有任务。它将通过从git拉取源代码,安装composer依赖项和安装或更新本地数据库来设置或更新本地Magento实例。
deploy:artifacts-generate
运行Magento di:compile
和setup:static-content-deploy
命令来生成资产。它使用来自magedeploy2.php
的配置。
生成这些资产后,它将根据您的配置创建软件包。
deploy:deploy
此命令将调用部署器发布您的项目并将准备好的工件推送到服务器。
版本控制
我们使用SemVer进行版本控制。有关可用的版本,请参阅此存储库的标签。
作者
- Matthias Walter - 初始工作 - mwr
许可证
本项目采用MIT许可证 - 请参阅LICENSE.md文件以获取详细信息