All notable changes to this project will be documented in this file since v2.0.0
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Magento 2.4.7, 2.4.6-p5, 2.4.5-p7, 2.4.4-p8 templates
- Adjustments to the Magento 2.4.4+ templates according to the system requirements
- Magento
2.4.7-beta3
templates.
- Automatically remove root
version
tag from thedocker-compose*.yml
files for Docker compose V2.
- PHP 8.3 support.
- MacOS and Docker Desktop support. PHP images in the DV compositions also now support the
linux/arm64/v8
architecture. - New command
maintenance:traefik:update-networks
to help Docker Desktop users to watch for the network changes and add/remove Traefik to/from the networks automatically in case it's not possible to usenetwork_mode: host
. - Added
$application->setCatchExceptions(false);
tobin/dockerizer
to allow propagating exceptions to the console. - OpenSearch Dashboards as a dev tool for OpenSearch.
- Improved PHP version constraints.
- Use
docker exec
instead of PHP PDO to connect to MySQL (MacOS compatibility). - Use
docker exec
anddocker cp
and Linux commands to work with files inside a container instead of PHP functions in the host OS. - Better support for MacOS filesystem: '/private/etc/hosts' and correctly get system temp directory.
- Pull Docker images before starting a composition.
- Magento
2.4.7-beta1
and2.4.6-p1
templates. - OpenSearch
2.5
for Magento2.4.6
and later.
- Bump Elasticsearch version from
7.17.5
to7.17.10
for Magento2.4.5-p2
-2.4.6
. - Stick to MySQL
8.0.28
for Magento2.4.1
-2.4.5
as stated in the system requirements.
- Downgraded Traefik template to use docker-compose file format v3.7. Later formats are not supported by Docker shipped with Ubuntu 20.04.
- Wiki
- Added new commands:
docker:mysql:connect
,docker:mysql:export-db
,docker:mysql:import-db
,docker:mysql:upload-to-aws
,docker:mysql:generate-metadata
,docker:mysql:reconstruct-db
,docker:mysql:test-metadata
,maintenance:traefik:cleanup-certificates
. - Nginx/Apache containers now have network aliases instead of
extra_hosts
in thedocker-compose.yml
files. - Generating random passwords for MySQL with ability to pass the password via the command options.
- Better auto-generated
Readme.md
for the commands.
- Various improvements to generating Docker compositions and installing Magento.
- Various issues with multithreading, cleanup, and other minor issues.
- Deleted
extra_hosts
from thedocker-compose.yml
files. - Removed hardcoded
root
user password from the MySQL containers.
- Output final service parameters and mounted files after dumping a composition.
- Allow empty optional services list.
- Allow passing empty option value via universal options like
--with-web-root=""
. - Make upgrade.sh more compatible with the latest Git versions.
- Setting non-interactive mode for the
magento:setup
command.
- Added
restart: always
to the MailHog container.
- Added Shopware 5 and 6 templates.
- Added and tested Magento 2.4.5 templates.
- Slightly better error handling for
composer create-project
. - Added more tests to the
magento:test-dockerfiles
command to cover more issues. - Implemented simple check for xDebug configuration in
magento:test-dockerfiles
.
- Implemented service-level dev tools instead of the global dev tools.
- Moved all templates inside the directory
templates/vendor/defaultvalue/dockerizer-templates
to emulate moving them to a separate repository.
- Removed non-persistent version of Elasticsearch service from all templates. The need to refresh data after every restart is not really convenient.
- Added
path
argument tocomposition:get-container-name
andcomposition:get-container-ip
commands for easier usage with CI/CD.
- Use
monolog/monolog
for logging in the console commands. - New command to test Dockerfiles with Magento:
magento:test-dockerfiles
. This is for internal testing only.
- New command moved from v2:
magento:test-module-install
. Multiple folders with module(s) can be passed at once.
- Security: implemented basic protection from working outside the system temp directory or
PROJECTS_ROOT_DIR
. Less chance to delete something really important in you OS. - Added template for generic PHP application template.
- Nginx virtual host not overwrites the default file in
/etc/nginx/conf.d/default.conf
.
Dockerizer v3.0.0 released! Please, check the presentation for more information Video
- New option for
--mount-root
fordockerize
andenv:add
commands. This option sets mount directory for projects were Docker files are not located in the same directory as Docker configurations. - New option for
--web-root
forenv:add
command. This option allows setting web root other thanpub/
. - Added new question classes:
ProjectMountRoot
andWebRoot
.
- Changed option name from
webroot
toweb-root
for better readability and consistence with other option names.
- Fixed minor issue when web root was set to
/var/www/html//
(with double/
at the end).
- Deprecated
env:add
command in favour of consolidating it with thedockerize
command in the future.
dockerize
- ask for confirmation if project root is outside the directory defined in thePROJECTS_ROOT_DIR
environment variable.\App\Services\SslCErtificate
- new class responsible for generating SSL certificates viamkcert
.- show full
dockerize
command after entering all parameters for reference and for the future re-use if needed.
- Updated dependencies.
- Project cleanup works properly and no files owned by root are left.
- Support
Composer v2
by adding--composer-version
option to the following commands:dockerize
,env:add
. - Display exception from MySQL for easier debug in case the connection can't be established.
- Generating individual file names per environment for SSL certificates.
- Compatibility issue with MySQL 8.0 (deprecated way to create used and grant permissions).
- Fixed
test:hardware
command to work properly with Magento 2.4.x (previously Magento was linked to the wrong MySQL container). - Proper creating user in MySQL from PHP 7.3 (for example, for Magento 2.4.0 with PHP 7.3).
- Command
env:add
now generated per-environment virtual host files and separate SSL certificate files. Previously everything was placed in one file. - Default
.gitignore
for Magento 2.4.1 (based on 2.4.0) when installing Magento.
- Added empty line to the end of the Magneto 2.4.1
.gitignore
(magento:setup
added custom ignores in the wrong way). - Using individual virtual host file per environment.
- Hotfix for Magento 2.4.1: added default
.gitignore
file for Magento 2.4.1 (taken from 2.4.0) because it is missed from the 2.4.1 release.
- Updated dependencies and locked minor version for better stability.
- Parameter name and usage from
$elasticsearchVersion
to$elasticsearchHost
in the Magneto-related commands.
- Removed option
--mysql-container
from the commandmagento:test-module-install
to dynamically find current linked MySQL container.
- New
test:dockerfiles
command to test running different Magento versions before publishing the Dockerfiles. - Implemented
--execution-environment
(-e
) option formagento:setup
anddockerize
commands. Must be used only for testing! Use prebuild images for yor projects; - Implemented
--elasticsearch
option fordockerize
andenv:add
commands. Automatically added when setting up Magento 2.4.0
- Renamed command from
hardware:test
totest:hardware
and mover the class toApp\Command\Test
namespace. - Extracted all common functionality for the
test:hardware
command into an abstract class (compatibility-breaking change). - Moved all logs to the same location -
var/log/
. - Git user name and email, Magento admin user name and email changed to the neutral ones.
- DI container
php-di/php-di
(replacessymfony/dependency-injection
). - New
env:add
command for creating multiple environments (staging/test/dev/etc. in addition to production). - New
hardware:test
command for easy hardware performance tests and infrastructure build testing. - Ability to choose SQL DB version during installation.
- Introduced the
\App\CommandQuestion\QuestionInterface
. Question classes automatically add options/argument to the command that uses them. This makes command classes smaller and reduces code duplication. - Introduced the
\App\CommandQuestion\Pool
to reduce Command class constructors. - Introduced a few new services to extract common or unnatural code from the commands.
- Only default file
docker-compose.yml
is used by default. - Command
magento:setup
renamed tomagento:setup
- Better default parameters handling.
- Symfony components
symfony/framework-bundle
andsymfony/dependency-injection
. - Replaced
--prod
and--dev
options with--domains
option from the\App\CommandQuestion\Question\Domains
class.