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
src
directory to be a symlinkcompose
folder, there is no longer specific magento-2
and magento-2-windows
specific folders. Windows support works on Docker with WSL.bin/copyfromcontainer
and bin/copytocontainer
so subdirectories are now properly copied from and to the containerbin/fixowns
script now includes the ability to fix ownerships at the subdirectory levelbin/copyfromcontainer
and bin/copytocontainer
scripts now fixes permissions and ownerships of just the subdirectories that are copiedbin/copyfromcontainer
and bin/copytocontainer
referencing incorrect destination file locationsbin/pwa-studio
and bin/setup-pwa-studio
bash scriptsbin/update
file for previous versions that did not include ithirak/prestissimo
composer package to bin/setup
helper script for much faster composer installs~/.docker-magento
folder.bin/setup
to resolve the error24.0.0
referenced vertex/module-tax
being removed but for some reason it was not removed, now it is7.3-fpm-0
for Magento 2.3.3 supportmarkoshust/magento-elasticsearch:6.5.4-0
which comes bundled with icu and phonetic plugins. The initial 6.5
version is for parity with Magento Cloud.bin/update
helper script that updates your docker-magento setup to the latest version.gitignore
file to project root to ignore src
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.bin/n98-magerun
and bin/devconsole
helper scripts.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
)bin/pwa-studio
(BETA) helper script to easily run the PWA Studio NodeJS web serverbin/dev-urn-catalog-generate
helper script has been updated for compatibility with more recent versions of PHPStormvertex/module-tax
Composer package installs correctly as of 2.3.0, so the line within the bin/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 your composer.json
file to prevent this package from being installed:{"replace": { "vertex/module-tax": "*" }}
php
base Docker image changed from Debian Stretch to Buster and broke a lot of packages, which caused a failed build for 7.1-fpm-12
& 7.2-fpm-3
tags. This update pegs the php
Docker image to Debian Stretch.7.1-fpm-12
, 7.2-fpm-3
libsodium-dev
package and sodium
PHP extension for Magento 2.3.2 support.7.1-fpm-10
, 7.2-fpm-1
bin/status
to check container status.bin/dev-urn-catalog-generate
to look at src
folder as project root.var/log
folder in docker-compose.dev.yml
for debugging purposes.docker-compose.dev.yml
file to easily mount auth.json
file, with updated usage in READMEbin/fixowns
now fixes permissions on /var/www
instead of /var/www/html
folder.~/.composer
directory in docker-compose.dev.yml
file.bin/copytocontainer
now calls bin/fixowns
afterwards to ensure correct file ownerships are set.bin/removevolumes
to remove docker volumes easily.vendor
folder and force of composer install to bin/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.bin/setup
to speed up initial requests.bin/dev-urn-catalog-generate
to copy file to host.🎅 Santa Shust wishes you a very Merry Christmas!
bin/start
helper script no longer copies docker volumes introduced in version 18.0.0. The docker-compose.yml
setup has been updated to only reference native Docker volumes. A new docker-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
, and nginx.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 mounting generated
and var
folders as host bind mounts. These directories are considered "caching" folders and should never be host bind mounted.bin/cli
or bin/bash
commands to go into the container to access the files. You can also use the new bin/copyfromcontainer
and bin/copytocontainer
bin helper scripts to copy files & folders from or to containers.docker-compose.dev.yml
file! Just be aware there is a performance penalty for doing so.nginx
Docker image to look for nginx.conf
file instead of nginx.conf.sample
file. This will now require copying the nginx.conf.sample
file to nginx.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 as markoshust/magento-nginx:1.13-7
.bin/setup
helper script uses ohly the docker-compose.yml
file, with only native docker volume mounts.bin/start
helper script uses both docker-compose.yml
and docker-compose.dev.yml
files. Development-only specifications should now be placed within docker-compose.dev.yml
, such as host bind volume mounts.docker-compose.yml
file now uses a sockdata
volume mount to mount the /sock
directory. You may need to delete the appdata
volume mount (docker volume rm NAME
) and rebuild it with bin/copytocontainer --all
.bin/fixperms
within bin/setup
to speed up initial installation.bin/copyfromcontainer
and bin/copytocontainer
helper scripts to copy folders or files from or to containers. Specify the --all
option to copy entire web directory structure.bin/rootnotty
to run root commands with no TTY (needed for unassisted one-line setup with new volume setup).bin/fixowns
to fix filesystem ownerships within the Docker container.docker-compose.dev.yml
file for development-only specifications.bin/copydir
and bin/copydirall
helper scripts.elasticsearch
. Save, clear the cache, and run bin/magento indexer:reindex
to enable.7.2-fpm-0
php image.bin/start
to ignore call to bin/copydirall
when ran on Linux.nginx.conf.sample
file from root installation directory for configuration, instead of having standalone configuration.bin/cli
usage and created bin/clinotty
for non-tty sessions. Updated calls in bin/setup
and other scripts where appropriate to bin/clinotty
.bin/start
now includes a call to bin/copydirall
after the containers start. This helper script runs a docker cp
command of all Magento directories from the container to the host. There is still a bind mount setup to ./src
root directory.docker cp
command runs, while retaining their named volume status within the Docker container.bin/start
now runs in daemon mode, as we also need to run bin/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.bin/restart
helper script to stop and start all containers.bin/remove
helper script to remove all containers.bin/copydir
which copies whichever folder you wish from the container to the host.bin/copydirall
which copies all Magento folders from the container to the host.lib/template
and lib/onelinesetup
for much easier installation methods.bin/initloopback
along with any references to 10.254.254.254
ip address. This may break existing Xdebug setups. Note that this ip address has been replaced with host.docker.internal
, which should automatically resolve back to the host machine.dev/auth.json
to dev/composer/auth.json
client_max_body_size 20M
to nginx.confupload_max_filesize = 20M
and post_max_size = 20M
to php.inijohn.smith
and password password123
.dev/auth.json
file used instead of ~/.composer/auth.json
file, so each project can have different auth credentials.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).