All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
N/A
- Increased php.ini
memory_limit
to4G
to get PHPUnit tests to pass - Increased php.ini
upload_max_filesize
andpost_max_size
to100M
just to prevent issues from being filed in the future
- New PHP image tags
7.2-fpm-9
,7.3-fpm-6
- Added new CLI to connect to MySQL
- Updated readme with new bin/mysql documentation
- n98-magerun2 to install on exec of
bin/n98-magerun2
instead ofbin/setup
script - Increased
max_input_vars
to10000
to prevent Invalid Form Post submission errors
- Fixed PHP ioncube module missing ioncube.so file
- Disable TTY on
bin/setup-ssl-ca script
- Fixed
bin/copytocontainer
script not copying files to proper directory
- Fixed implementation of grunt. The grunt-cli is now installed globally on the image and doesn't depend on contents of the
vendor
directory.
- Upgraded NodeJS to 10.x, as 8.x was failing to install npm due to source repository updates #210
- Removed PHP 7.1 image from filesystem as it has been deprecated. If you need to reference the last version of these images, they are available at https://github.com/markshust/docker-magento/tree/27.2.0/images/php/7.1
- Support for RabbitMQ PR #212
- New
bin/setup-ssl
script to generate valid SSL certificates #211 - New
markoshust/magento-nginx:1.13-8
image containing mkcert script
- Updated
bin/setup
to use newbin/setup-ssl
script
Happy new year! 🎉
- Updated the PHP base images from Debian Stretch to Buster
- Updated PHP libsodium package to
1.0.17
to supportHASH_VERSION_ARGON2ID13
#193
- Built-in support for Blackfire.io
- New PHP image tags
7.2-fpm-5
,7.3-fpm-2
- Ability for
src
directory to be a symlink
- Fixed Magento2 setup script with n98-magerun2.phar
- Fixed dev-urn-catalog-generate script
- All Windows-specific setup and helper scripts. This involved changing directory structure of
compose
folder, there is no longer specificmagento-2
andmagento-2-windows
specific folders. Windows support works on Docker with WSL. - Support for PHP 7.1 (EOL)
- Full parity with Magento Cloud PHP extensions
- Optimized Dockerfile install order and layer usage for all PHP images (7.1, 7.2 & 7.3)
- Updated few lib dependencies in Dockerfiles with new versions
- Pegged Composer to version 1.9.0 for predictability, moved to lower layer so updating version doesn't require full rebuild of all layers
- Fixed logic of
bin/copyfromcontainer
andbin/copytocontainer
so subdirectories are now properly copied from and to the container
- The
bin/fixowns
script now includes the ability to fix ownerships at the subdirectory level - The
bin/copyfromcontainer
andbin/copytocontainer
scripts now fixes permissions and ownerships of just the subdirectories that are copied
- Fixed
bin/copyfromcontainer
andbin/copytocontainer
referencing incorrect destination file locations
- Added missing
bin/pwa-studio
andbin/setup-pwa-studio
bash scripts
- Documented in README how to retrieve
bin/update
file for previous versions that did not include it - Added
hirak/prestissimo
composer package tobin/setup
helper script for much faster composer installs - Downloaded archive installs are now cached on the user's machine, so subsequent installs of Magento will no longer re-download the archive if previously downloaded. Downloaded archives are stored in the
~/.docker-magento
folder.
- There is an invalid checksum reference in the Nexcess archive of 2.3.3, replaced checksum reference in
bin/setup
to resolve the error
- The previous CHANGELOG for
24.0.0
referencedvertex/module-tax
being removed but for some reason it was not removed, now it is
- New PHP docker image version
7.3-fpm-0
for Magento 2.3.3 support - New Elasticsearch docker image
markoshust/magento-elasticsearch:6.5.4-0
which comes bundled with icu and phonetic plugins. The initial6.5
version is for parity with Magento Cloud. - New
bin/update
helper script that updates your docker-magento setup to the latest version - Added
.gitignore
file to project root to ignoresrc
directory. It is recommended to keep your root docker config files in one repository, and your Magento code setup in another. This ensures the Magento base path lives at the top of one specific repository, which makes automated build pipelines and deployments easy to manage, and maintains compatibility with projects such as Magento Cloud. - Install n98-magerun2 when setup is executed, and added related
bin/n98-magerun
andbin/devconsole
helper scripts. - Added
bin/setup-pwa-studio
(BETA) helper script to easily install PWA Studio, usage accepts a single parameter being the site URL you wish PWA Studio to connect to (ex.bin/setup-pwa-studio magento2.test
) - Added
bin/pwa-studio
(BETA) helper script to easily run the PWA Studio NodeJS web server
- The
bin/dev-urn-catalog-generate
helper script has been updated for compatibility with more recent versions of PHPStorm
-
The
vertex/module-tax
Composer package installs correctly as of 2.3.0, so the line within thebin/setup
script which prevented it from being installed was removed. If one is having issues installing an older version of Magento 2, add the following line to yourcomposer.json
file to prevent this package from being installed:{"replace": { "vertex/module-tax": "*" }}
- The
php
base Docker image changed from Debian Stretch to Buster and broke a lot of packages, which caused a failed build for7.1-fpm-12
&7.2-fpm-3
tags. This update pegs thephp
Docker image to Debian Stretch.
- Xdebug breakpoints not triggering
- New PHP docker image versions
7.1-fpm-12
,7.2-fpm-3
- Mailhog container doesn't stop when running bin/stop
- View emails sent locally through Mailhog by visiting http://{yourdomain}:8025
- Make Dockerfile consistent between versions
- Move Docker layers to bottom for smaller downloads, useful for those using previous versions
- Same Docker version tag, so just remove Docker image locally and re-pull to use
libsodium-dev
package andsodium
PHP extension for Magento 2.3.2 support.- New PHP docker versions
7.1-fpm-10
,7.2-fpm-1
- Allow setup without SSH credentials.
- Documentation for connecting to MySQL.
bin/status
to check container status.
- Readme for existing installs.
bin/dev-urn-catalog-generate
to look atsrc
folder as project root.
- Readme usage of pasting command into non-standard terminal.
- Host bind mount
var/log
folder indocker-compose.dev.yml
for debugging purposes. - Redis is now the default storage engine for cache and session. Massively improved performance for local dev! 🚀
- Added commented-out line in
docker-compose.dev.yml
file to easily mountauth.json
file, with updated usage in README
- Cron not working correctly
- Helper script
bin/fixowns
now fixes permissions on/var/www
instead of/var/www/html
folder. - Removed superfluous mounting of
~/.composer
directory indocker-compose.dev.yml
file.
- Helper script
bin/copytocontainer
now callsbin/fixowns
afterwards to ensure correct file ownerships are set.
- Helper script
bin/removevolumes
to remove docker volumes easily. - Added removal of
vendor
folder and force of composer install tobin/setup
script. When installed from zip, it's possible Magento isn't installing all deps properly and assigning wrong permissions in Docker. Forcing a reinstall fixes this issue. - Force deploy of static content when running
bin/setup
to speed up initial requests.
- Fixed helper script
bin/dev-urn-catalog-generate
to copy file to host.
🎅 Santa Shust wishes you a very Merry Christmas!
- 💯 performance improvements (14 second load times now take 7 seconds!)
- The
bin/start
helper script no longer copies docker volumes introduced in version 18.0.0. Thedocker-compose.yml
setup has been updated to only reference native Docker volumes. A newdocker-compose.dev.yml
file has been added to reference development-specific settings, including host bind mounts. Only.composer
,app/code
,app/design
,app/etc
,composer.json
,composer.lock
, andnginx.conf
filesystem locations are host bind mounted. Being very specific in which files and folders are being mounted leads to drastically faster response times. The main culprit in performance penalties before was mountinggenerated
andvar
folders as host bind mounts. These directories are considered "caching" folders and should never be host bind mounted. - If you need access to specific files that are created within the container and are not host bind mounted, you can use
bin/cli
orbin/bash
commands to go into the container to access the files. You can also use the newbin/copyfromcontainer
andbin/copytocontainer
bin helper scripts to copy files & folders from or to containers. - If you need to host bind mount files or folders, feel free to do so within the
docker-compose.dev.yml
file! Just be aware there is a performance penalty for doing so.
- The
- Updated
nginx
Docker image to look fornginx.conf
file instead ofnginx.conf.sample
file. This will now require copying thenginx.conf.sample
file tonginx.conf
, or using a host bind mount. This location allows overrides that aren't overridden when you upgrade Magento, and allow customizations for projects. Tagged new image asmarkoshust/magento-nginx:1.13-7
. - The
bin/setup
helper script uses ohly thedocker-compose.yml
file, with only native docker volume mounts. - The
bin/start
helper script uses bothdocker-compose.yml
anddocker-compose.dev.yml
files. Development-only specifications should now be placed withindocker-compose.dev.yml
, such as host bind volume mounts. - The
docker-compose.yml
file now uses asockdata
volume mount to mount the/sock
directory. You may need to delete theappdata
volume mount (docker volume rm NAME
) and rebuild it withbin/copytocontainer --all
. - Removed call to
bin/fixperms
withinbin/setup
to speed up initial installation.
- Added
bin/copyfromcontainer
andbin/copytocontainer
helper scripts to copy folders or files from or to containers. Specify the--all
option to copy entire web directory structure. - Added
bin/rootnotty
to run root commands with no TTY (needed for unassisted one-line setup with new volume setup). - Added
bin/fixowns
to fix filesystem ownerships within the Docker container. - Added
docker-compose.dev.yml
file for development-only specifications.
- The Magento 1 version of this development environment has been deprecated and is no longer supported. PHP 5 was used as it's base, and that version has reached end-of-life. If you still wish to use this setup, please reference compose/magento-1 on tag 20.1.1, but please be aware these images are no longer maintained.
- The PHP 5.6 and 7.0 images have been deprecated, as both of these versions have reached end-of-life. These versions have been removed from the README and are no longer maintained. If you still wish to use these images, please reference the README on tag 20.1.1, but please be aware these images are no longer maintained.
- Removed
bin/copydir
andbin/copydirall
helper scripts.
- Fixed typo in docker-compose.yml for linux
- Official support for Elasticsearch. Go to Admin > Stores > Configuration > Catalog > Catalog > Catalog Search, and select "Elasticsarch 5.0+" from the list of options. Keep all defaults the same, but set Elasticsearch Server Hostname to
elasticsearch
. Save, clear the cache, and runbin/magento indexer:reindex
to enable.
- Official support for Magento 2.3 & PHP 7.2. Officially tagging
7.2-fpm-0
php image.
- Various updates to README, including references now being made to Magento 2.3.
- Added comments to docker-compose for fixes needed on Linux machines (volume mounts and host.docker.internal fix).
- Volume mount issues on linux. Updated
bin/start
to ignore call tobin/copydirall
when ran on Linux.
- Added SSL support and made it enabled by default in the nginx config. All http requests will also be forwarded to https.
- Magento 2 nginx configuration now includes
nginx.conf.sample
file from root installation directory for configuration, instead of having standalone configuration.
- Reverted old
bin/cli
usage and createdbin/clinotty
for non-tty sessions. Updated calls inbin/setup
and other scripts where appropriate tobin/clinotty
.
- Changed the way bind mounts work with Docker compose and Magento 2.
- Note that
bin/start
now includes a call tobin/copydirall
after the containers start. This helper script runs adocker cp
command of all Magento directories from the container to the host. There is still a bind mount setup to./src
root directory. - There is a condition/bug within Docker that when named volumes overlap with bind mounts, the named volumes automatically sync back to the host once a
docker cp
command runs, while retaining their named volume status within the Docker container. - We're tapping into this very odd bug and taking advantage of this as long as we can. Since data is still fetched from within the Docker container as a named volume, this should also allow not-so-performant computers to now run this Docker setup, as it provides near or truly native filesystem performance, since requests to these directories are still fetched through the named volume as far as Docker is concerned.
- Note that
bin/start
now runs in daemon mode, as we also need to runbin/copydirall
immediately after starting containers so data syncs back to the host (and vice versa). This also eliminates the need to to have a terminal window open all the time for keeping containers running.
- Added back support for Magento 1 and PHP 5.6 containers. Magento 1 EOL will not be until 2020, so we should support these images and Docker Compose setup indefinitely for the time being.
- Added new
bin/restart
helper script to stop and start all containers. - Added new
bin/remove
helper script to remove all containers. - Added new
bin/copydir
which copies whichever folder you wish from the container to the host. - Added new
bin/copydirall
which copies all Magento folders from the container to the host. - Added
lib/template
andlib/onelinesetup
for much easier installation methods. - Added automatic Xdebug support for VS Code - no setup needed!
- Removed
bin/initloopback
along with any references to10.254.254.254
ip address. This may break existing Xdebug setups. Note that this ip address has been replaced withhost.docker.internal
, which should automatically resolve back to the host machine.
- Removed bind mount of vendor folder introduced in 16.2.0 due to inconsistency issues. Update cominmg soon that will implement new method of bind mounting.
- Removed idekey setting from php.ini config.
- Simplified Xdebug configuration for PHPStorm. This will require configuration updates for all users using Xdebug within PHPStorm.
- Added support for Xdebug and VS Code.
- Updated docker-compose.yml file to volume mount vendor folder for 50% performance increase
- Added php ssh2 extension
- The PHP 5.6 release will no longer be maintained, the last released version is 16.0.0
- Moved
dev/auth.json
todev/composer/auth.json
- Added
client_max_body_size 20M
to nginx.conf - Added
upload_max_filesize = 20M
andpost_max_size = 20M
to php.ini
- Bugs with npm permissions.
- NodeJS 8 and npm 5 added to the PHP images!
- New PHP 7.2 image. Be aware that this hasn't yet been fully tested.
- New helper scripts bin/grunt, bin/node, bin/npm and bin/stop.
- All bin helper script calls from ./bin/name to bin/name.
- Updated bin scripts for Windows, possible breaking updates.
- Magento 2.2.5 requires username and password to be different values. Updated to dummy "John Smith" user persona with username
john.smith
and passwordpassword123
.
- New
dev/auth.json
file used instead of~/.composer/auth.json
file, so each project can have different auth credentials.
- The
cron
service is now disabled by default. This services uses higher CPU and should probably only be enabled when working on cron-related tasks (or on production).