- Reliable fully-automated deployments tool for Magento 2.
- Zero downtime deployments on Magento versions >= 2.2
- Automating your deployments is as easy as defining the servers where you want to deploy to.
This project aims to offer a common solution for fully-automated deployments on all versions of Magento 2. This tool uses the well known Deployer and adds specific recipes for each Magento 2 version.
- Deployer code syntax
- Super easy setup
- Deploy to multiple servers
- Zero Downtime (only Magento >= 2.2)
- Build and Deploy artifacts (only Magento >= 2.2)
- Secure rollbacks (only Magento >= 2.2)
composer require justbetter/magento2-deployer-plus
cp <vendor_dir>/justbetter/magento2-deployer-plus/deploy.php.sample_2_1 deploy.php
cp <vendor_dir>/justbetter/magento2-deployer-plus/deploy.php.sample_2_2 deploy.php
cp <vendor_dir>/justbetter/magento2-deployer-plus/deploy.php.sample_2_2_5 deploy.php
<bin_dir>/dep deploy [<stage>]
<bin_dir>/dep build
<bin_dir>/dep deploy-artifact [<stage>]
-
Problem: Known Magento issue when executing
setup:static-content:deploy
for several languages. -
Github Issues:
-
Solution: Until that gets fixed in
2.2.1
, the only workaround is to executesetup:static-content:deploy
individually for each language:// deploy.php task('files:static_assets', function () { run('{{bin/php}} {{magento_bin}} setup:static-content:deploy en_US {{static_deploy_options}}'); run('{{bin/php}} {{magento_bin}} setup:static-content:deploy de_CH {{static_deploy_options}}'); run('{{bin/php}} {{magento_bin}} setup:static-content:deploy fr_FR {{static_deploy_options}}'); });
- Solution: Increase php
memory_limit
configuration to 728M o 1024M
-
Problems:
[LogicException] Unable to load theme by specified key: 'Template'
@variable
is undefined in file
-
Reason: If a new template is set, running
setup:upgrade
is required before executingsetup:static-content:deploy
-
Solution: Skip
setup:static-content:deploy
first time you deploy the new template:-
Temporary disable task
files:static_assets
// deploy.php task('files:static_assets')->onRoles('Skip');
-
Perform a new release
-
Enable back
files:static_assets
on yourdeploy.php
file- Remove
task('files:static_assets')->onRoles('Skip');
- Remove
-
Manually execute
files:static_assets
<bin_dir>/dep files:static_assets [<stage>]
After that, future deployments will work without issues
-
- PHP >= 8.0
- MAGENTO >= 2.1
GNU General Public License, version 3 (GPLv3)
(c) JustBetter B.V. hello@justbetter.nl