Cloud Docker package

The magento/magento-cloud-docker package provides functionality and Docker images to deploy Adobe Commerce to a local Cloud environment. These release notes describe the latest improvements to this package, which is a component of Cloud Tools Suite for Commerce.

The magento/magento-cloud-docker package uses the following version sequence: <major>.<minor>.<patch>

The release notes include:

  • new icon New features
  • fix icon Fixes and improvements

v1.3.6

Release date: July 31, 2023

  • new icon Added new service version—OpenSearch 2.5.
  • new icon Enable Composer cache—Now you can extend the Docker configuration to enable Composer clear cache when starting the Docker container. See Extend the Docker configuration in the Cloud Docker for Commerce guide.

v1.3.5

Release date: March 10, 2023

  • new icon ionCube—Added the ionCube extension for the PHP 8.1 image.
  • new icon Added new service versions—OpenSearch 2.3 and 2.4, PHP 8.2, Varnish 7.1.1.
  • new icon Enhanced support for PHP 8.2—Fixed compatibility issues with certain PHP 8.2.x versions to support Commerce 2.4.6.
  • fix icon Composer issue—Fixed issues that occurred after updating the Composer version within the Docker containers.

v1.3.4

Release date: October 27, 2022

  • new icon Added new Varnish images—Added images for Varnish 6.5, 7.0, and 7.1.

v1.3.3

Release date: September 13, 2022

  • new icon Apple M1 (ARM64) support—Added changes to Docker images to enable support for Apple M1 (ARM64) architecture.
  • fix icon Mailhog—Fixed an issue where the Mailhog service did not catch emails while in developer mode.
  • fix icon init-docker.sh—Fixed the service versions validator in the init-docker.sh script.

v1.3.2

Release date: March 31, 2022

  • new icon Added Elasticsearch 7.10 image

v1.3.1

Release date: March 10, 2022

  • new icon Support PHP 8.1—Added support for PHP 8.1.

  • new icon OpenSearch—Added images of OpenSearch versions 1.1 and 1.2.

  • new icon Composer 2.1—Set composer 2.1.x by default in PHP 8.x images.

  • new icon PHP images improvements

    • Added PHP 8.1 images
    • Upgraded xDebug version 3.1.2
    • Upgraded xmlrpc 1.0.0RC3
  • fix icon Elasticsearch & OpenSearch improvements—Improvements in Elasticsearch and OpenSearch Dockerfiles; removed the Elasticsearch 5.2 image.

  • fix icon Sodium extension—Enabled the sodium extension by default in all PHP images.

  • fix icon Composer cache volume—Fixed path for Composer cache volume to have cached Composer packages.

  • fix icon Memory limitation in nginx—Fixed limitation of memory in NGINX image.

v1.3.0

Release date: October 25, 2021

  • fix icon Improve Developer mode workflow—Previously, you needed to specify the mode in the build and deploy steps. Now, the --mode option in the build step determines the mode in the later deploy step. Setting the mode after the deployment is no longer required. See Developer mode.

  • fix icon Improvements for read-only filesystem

    • Fix issue starting a PHP container for mail configuration.
    • Can use environment variables in INI files.
    • Ensure PHP entry points do not need write permission.
  • fix icon Update Node—Update the bundled Node version; when installing Node in PHP-CLI images, it now uses the current LTS version.

  • fix icon Update Symfony—Updated the Symfony config dependencies to be compatible with Adobe Commerce 2.4.4.

v1.2.4

Release date: July 29, 2021

  • new icon New Zookeeper container—Added a Zookeeper container to manage lock provider configuration for projects that are not deployed to Adobe Commerce on Cloud infrastructure.

  • new icon Added support for Composer 2.0.—Added Composer version 2.0 to the Composer configuration file to support upgrades from Composer 1.0 which is approaching end-of-life.

v1.2.3

Release date: June 14, 2021

  • new icon Added PHP 8.0—Updated PHP to version 8.0, allowing you take advantage of all the new features and optimizations PHP 8.0 includes.
  • new icon Updated to Varnish 6.6 and Elasticsearch 7.11.2—The following links provide release information on Varnish Cache 6.6 and Elasticsearch 7.11.2.
  • new icon Added ioncube extension for PHP 7.4 image—The ioncube extension has been re-added to the PHP 7.4 image after having been initially excluded from the PHP 7.3 to PHP 7.4 upgrade. Submitted by mattskr.
  • new icon Added a file sync option: manual-native—The manual-native file synchronization option provides manual control over synchronization, which provides the best performance for macOS and Windows environments. Read about using the manual-native option in Developer mode and Synchronizing data in a Docker developer environment.
  • new icon Removed volume deletions from up and down commands—The --volume option was removed from the bin/magento-docker up and bin/magento-docker down commands, replaced by the new bin/magento-docker init command with a data loss warning. This change helps prevent the accidental data loss. Submitted by joeshelton-wagento.
  • fix icon Updated CN value for the generated certificate—Removed the hardcoded CN value from the Dockerfile. This value created a certificate error (NET::ERR_CERT_INVALID) that caused the --host option for the ece-docker build:compose command to be ignored.

v1.2.2

Release date: April 20, 2021

  • new icon Updated host.docker.internal to be platform independent—You can now create the same Docker Compose scripts for Ubuntu, Windows, and macOS. Using Xdebug on Ubuntu no longer requires a separate environment variable. Fix submitted by Igor Vitol.

  • new icon Updated init-docker.sh—Added the mounts object to the MAGENTO_CLOUD_APPLICATION environment variable. Fix submitted by Chiranjeevi.

  • new icon Updated init-docker.sh—Updated the init-docker.sh script with PHP 7.4 and Cloud Docker 1.2.1 versions. Fix submitted by Adarsh Manickam.

  • new icon Sodium enabled by default—Enabled the sodium PHP extension by default within PHP Docker images.

  • new icon custom-registry option—Added a --custom-registry option to php ./vendor/bin/ece-docker build:compose command for using your own images registry.

    code language-bash
    ./vendor/bin/ece-docker build:compose --custom-registry=my-registry.example.com
    
  • new icon Removed old Elasticsearch versions—Removed Elasticsearch versions 1.7 and 2.4 from the Elasticsearch images.

  • new icon Auto-generating NGINX certificates—Removed the existing certificates from the NGINX image. The NGINX certificates are now auto-generated with each new deployment for improved security.

  • fix icon Enabled opcache.validate_timestamps—Enabled the opcache.validate_timestamps PHP setting by default in developer mode. Enabling this setting fixed the issue where changes to the filesystem were not recognized in Docker.

  • fix icon Fixed build:custom:compose—Fixed the build:custom:compose command to throw an error when files cannot be overwritten during the build process. Throwing an error prevents situations where docker-compose up could be using the wrong files.

  • fix icon Fixed --sync_engine="native" option—Fixed the issue where in production mode (--mode="production"), the --sync_engine="native" option would not create any entries for local folders in the docker.composer.yml file.

  • fix icon Fixed service version validation errors—Added service versions for RabbitMQ, Elasticsearch, and other services to the type property in the MAGENTO_CLOUD_RELATIONSHIP variable. Adding these versions to the relationships variable fixed the validation errors that occurred during the deploy phase.

v1.2.1

Release date: December 21, 2020

  • new icon NGINX command options—Added build command options to change the number of NGINX worker_processes and NGINX worker_connections for TLS and Web services. The worker_process parameter retains the ability to set the value to auto. Examples:

    code language-terminal
    ./vendor/bin/ece-docker build:compose --nginx-worker-processes=2
    ./vendor/bin/ece-docker build:compose --nginx-worker-connections=2048
    
  • new icon TLS command option—Added build command option to create a configuration without the TLS service. Example:

    code language-terminal
    ./vendor/bin/ece-docker build:compose --no-tls
    
  • new icon NGINX memory consumption—Reduced the memory consumed by the NGINX process for TLS and Web services.

  • new icon Blackfire—Disabled Blackfire PHP extension by default in the Cloud Docker image.

  • fix icon PHP-FPM container—Fixed PHP-FPM container health check by changing the WEB_PORT from 80 to 8080.

  • fix icon Invalid volume naming—Fixed an error with invalid volume naming in developer mode.

  • fix icon NGINX upstream port—Updated the Docker NGINX 1.19 image to use port 8080 to avoid an infinite loop. Fix submitted by Adarsh Manickam.

v1.2.0

Release date: November 9, 2020

  • new icon Container updates—

    • new icon PHP-FPM container—Added support for the gnupg PHP extension. Fix submitted by G Arvind from Zilker Technology.

    • fix icon Database container—Fixed the database container health check by adding the required database password to the health check command.

    • new icon Elasticsearch container

      • Added support for Elasticsearch 7.9 for compatibility with upcoming Adobe Commerce releases.

      • Elasticsearch plugin configuration—Added support to use the Elasticsearch plugin configuration information from the services.yaml file to generate the docker-compose.yaml file for a Cloud Docker for Commerce environment. See Elasticsearch plugins.

      • Elasticsearch plugin support—Added support for the following Elasticsearch plugins: analysis-icu, analysis-phonetic, analysis-stempel, and analysis-nori. The analysis-icu and analysis-phonetic plugins are installed by default. You can add or remove the analysis-stempel and analysis-nori plugins as needed.

    • new icon CLI container

      • Run commands inside Docker PHP containers—Now you can use the Cloud Docker CLI to run commands inside PHP containers in your Docker environment without having to install PHP on the host. For example, the following command builds the configuration: ./bin/magento-docker php 7.3 vendor/bin/ece-docker build:compose. See Cloud Docker CLI. Fix submitted by G Arvind from Zilker Technology.

      • Added the OpenSSH-client to PHP CLI containers. Now, you can use ssh-agent forwarding for Composer if the composer.json file contains private git repositories that require an ssh client to use Composer commands.

    • fix icon TLS container—Now, the TLS container is based on the https://hub.docker.com/r/magento/magento-cloud-docker-nginx Docker image instead of the CentOS image. This change fixes issues that caused errors when sending HTTPS requests between containers in the Cloud Docker environment.

    • new icon Test container—Added a test container for application testing, and added the --with-test option to the Docker build:compose command to create the container only when testing in the Docker environment. See application testing.

    • new icon FPM-XDEBUG container

      • new icon Configure Xdebug on Linux—Added the --set-docker-host option to the ece-docker build:compose command to configure the host.docker.internal value in the Xdebug container. This option is required to use Xdebug on Linux systems. See Configure Xdebug for Docker.

      • fix icon Fixed the Xdebug variable configuration for the Docker ENTRYPOINT to resolve uninitialized "with_xdebug" variable errors in the logs. Fix submitted by Florent Olivaud

  • new icon Docker configuration changes

    • MailHog configuration—Now you can use the following ece-docker build:compose command options to disable MailHog and specify ports: --no-mailhog, --mailhog-http-port, and --mailhog-smtp-port. See Set up email.

    • For Cloud Docker for Commerce 1.2.0 and later, Adobe now provides Docker images for each patch version, and the Docker configuration generator creates the Docker configuration with a specified patch version instead of using the latest. Previously, the Docker configuration generator built the configuration using the latest patch version which could break Cloud Docker for Commerce environments built using an earlier version.

    • Specify custom images and versions in custom Cloud Docker configuration—Updated the build:custom:compose command with options to specify custom images and versions when generating a custom Docker compose configuration file (docker-compose.yaml). See Build a custom Docker Compose configuration.

    • Updated the Docker host configuration to expose port 443 to enable access to Adobe Commerce (https://magento2.docker) from all CLI containers. You can change the default port by adding the --tls-port option when you generate the Docker configuration file.

  • fix icon Fixed an issue that caused the Cloud Docker for Commerce build to fail if the app/etc/env.php file exists.

  • fix icon Updated the build configuration to replace named volumes with regular volumes to prevent issues when deploying Cloud Docker for Commerce on Linux or Windows Subsystem for Linux (WSL2).

  • fix icon Updated the Cloud Docker for Commerce functional tests to support Composer 2.0.

v1.1.2

Release date: September 9, 2020

  • new icon Added support for Elasticsearch 7.7

v1.1.1

Release date: August 5, 2020

  • fix icon Updated email configuration—Updated the default Cloud Docker for Commerce configuration to support the MailHog service instead of using SendMail. See Set up email.

  • fix icon Restored the PS library to the Cloud Docker environment configuration to fix ps: command not found errors.

  • fix icon Updated the default Cloud Docker for Commerce configuration to remove automatic mounting of the database entrypoint and MariaDB volumes to fix Cannot create container for service db errors that can occur when starting your Cloud Docker environment.

    Now, you can configure the Cloud Docker environment to mount the database directories by adding the following options to the ece-docker build:compose command: --with-entry-point and with-mariadb-conf. See Service configuration options.

  • new icon CLI command updates

Action
Command
Add an entrypoint to the database container to restore the database from backup
./vendor/bin/ece-docker build:compose --db --with-entrypoint
Add a MariaDB configuration volume
./vendor/bin/ece-docker build:compose --db --mariadb-conf

v1.1.0

Release date: June 25, 2020

  • new icon Added support for the split database performance solution—Now you can configure and deploy a store using the Split database performance solution in the Cloud Docker environment.

  • new icon Support for Adobe Commerce and Magento Open Source deployment—Now you can use Cloud Docker for Commerce to deploy a local development environment for projects that are not hosted on Adobe Commerce on cloud infrastructure.

  • new icon Blackfire.io support—Added support to use the Blackfire.io extension for automated performance testing. Fix submitted by Adarsh Manickam from Zilker Technology

  • new icon Container updates

    • Varnish—Now Varnish is the default cache when you deploy Adobe Commerce in a Cloud Docker environment using a supported version of the Cloud application template. See Varnish container.

    • Added the --no-varnish option to skip Varnish service installation when you generate the Cloud Docker configuration file.

    • new icon Database

      • Added the support for the MySQL database. Now, you can configure the Cloud Docker environment with either MariaDB or MySQL. See Service configuration options.

      • Added the ability to set the increment and offset settings for database replication when you generate the Docker compose file. See Service containers.

    • new icon PHP-FPM

    • fix icon Node.js—Updated the default Node.js version from version 8 to version 10 to improve security. Node.js version 8 is deprecated and no longer updated with bug fixes or security patches. Fix submitted by Mohan Elamurugan from Zilker Technology.

    • new icon Elasticsearch

      • Added support for Elasticsearch 6.8, 7.2, 7.5, and 7.6.

      • Added the ability to customize the Elasticsearch container configuration when you generate the Docker compose configuration file.

      • Added the --no-es option to the service configuration options for generating the Docker Compose configuration file. Use this option to skip the Elasticsearch container installation and use MySQL search instead. This option is supported only for Adobe Commerce versions 2.3.5 and earlier.

    • new icon FPM-XDEBUG container—Added a service configuration option to install and configure Xdebug for debugging PHP in your Cloud Docker environment. See Configure Xdebug.

  • new icon Docker configuration changes

    • Added health checks for the PHP-FPM, Redis, Elasticsearch, and MySQL Docker service containers.

    • Changed the default file synchronization mode to native in Developer mode.

    • Added version information to the generic Docker service container image when generating the docker-compose.yml file.

    • Improved ability to handle large responses from the upstream PHP-FPM container by increasing the fastcgi_buffers value for the Nginx server.

    • Improved mutagen file synchronization performance by adding a second sync session to synchronize files in the vendor directory. This change prevents mutagen from getting stuck during the file synchronization process. Fix submitted by Mathew Beane from Zilker Technology.

    • new icon CLI command updates

Action
Command
Clear Redis cache
bin/magento-docker flush-redis
Clear Varnish cache
bin/magento-docker flush-varnish
Skip default Varnish installation
.vendor/bin/ece-docker build:compose --no-varnish
Customize Elasticsearch options
.vendor/bin/ece-docker build:compose --es-env-var
Remove Elasticsearch configuration
.vendor/bin/ece-docker build:compose --no-es
Configure DB container with MySQL version 5.6 or 5.7
./vendor/bin/ece-docker build:compose --db <mysql-version-number> --db-image mysql
Specify custom base URL
./vendor/bin/ece-docker build:compose --host=<hostname> --port=<port-number>
Add container for Xdebug configuration
.vendor/bin/ece-docker build:compose --mode developer --sync-engine native --with-xdebug

v1.0.0

Release date: Feb 5, 2020

  • new icon Created a separate package to deliver Cloud Docker for Commerce—Moved the source code to deliver Cloud Docker for Commerce from the ece-tools repository to the new magento-cloud-docker repository to maintain code quality and provide independent releases. The new package is a dependency for ECE-Tools v2002.1.0 and later.

    When you update ece-tools, you also update the magento/magento-cloud-docker package to version 1.0.0. If you used Cloud Docker for Commerce with an earlier ece-tools release (2002.0.x), review the backward incompatibilities and update your project as scripts, commands, and processes as needed.

  • new icon Added versioning to the Docker images—You must now update the magento/magento-cloud-docker package to get the updated images.

  • new icon Container updates

    • new icon PHP-FPM container

      • new icon Added Node.js support—Updated the PHP-FPM image to support node, npm, and the grunt-cli capabilities inside the PHP container.

      • new icon Added support for ionCube—Updated the default Docker configuration to support ionCube in the local Docker development environment.

    • new icon Web container

      • new icon Customize NGINX configuration—Added the capability to mount a custom nginx.conf file to the Cloud Docker for Commerce environment. See Web container.

      • new icon Auto-generated NGINX certificates—The Docker configuration file now includes the configuration to auto-generate NGINX certificates for the Web container.

    • new icon New Selenium container—Added a Selenium container to support Adobe Commerce application testing using the Magento Functional Testing Framework (MFTF).

    • new icon RabbitMQ version support—Updated the RabbitMQ container configuration to support RabbitMQ version 3.8.

    • fix icon Persistent database container—The magento-db: /var/lib/mysql database volume now persists after you stop and remove the Docker configuration and restores when you restart the Docker configuration. Now, you must manually delete the database volume. See [Database containers].

    • new icon TLS container

      • new icon Updated the container base image to use official image—The Cloud TLS container image is now based on the official debian:jessie Docker image.—

      • new icon Added support for the [Pound TLS Termination Proxy]—The Pound configuration file adds the following ENV variables to customize the Docker configuration for the TLS container:

        • TimeOut—Sets the Time to First Byte (TTFB) timeout value. The default value is 300 seconds.

        • RewriteLocation—Determines whether the Pound proxy rewrites the location to the request URL by default. Defaults to 0 to prevent the rewrite from breaking redirects to outside websites like an external SSO site. Fix submitted by Sorin Sugar

      • new icon Increased the timeout value in the TLS container configuration from 15 to 300 seconds. Fix submitted by Mathew Beane from Zilker Technology

    • new icon Varnish container

      • new icon Updated the container base image to use official image—The Cloud Varnish container is now based on the official centos Docker image.

      • new icon Improved default timeout configuration-Added .first_byte_timeout and .between_bytes_timeout configuration to the Varnish container. Both timeout values default to 300s (5 minutes). Fix submitted by Mathew Beane from Zilker Technology

      • fix icon Skip Varnish during Xdebug sessions—Updated the Varnish container configuration to return pass on requests received when Xdebug is enabled. In previous releases, you could not use Xdebug if the Docker environment included Varnish. Fix submitted by Mathew Beane from Zilker Technology.

  • new icon Docker configuration changes

    • new icon Manage mounts and volumes for your project—Added the ability to manage mounts and volumes when launching a Docker environment for local development. See [Sharing project data].

    • new icon Support for network bridge mode—Added support for network bridge mode to enable connections between Docker containers over the local network.

    • new icon Cron container disabled by default—To improve performance, the Cron container is no longer configured by default when you build the Docker environment. You can use the --with-cron option on the Docker build command to add a Cron container to your environment. See Managing cron jobs.

    • new icon Stop synchronizing large backup files—Added DB dumps and archive files—ZIP, SQL, GZ, and BZ2—to the exclusion list in the dist/docker-sync.yml and dist/mutagen.sh files. Synchronizing large files (>1 GB) can cause a period of inactivity and backup files do not normally require synchronization since you can regenerate them.

  • new icon Command changes

    • fix icon Renamed the ./bin/docker file to ./bin/magento-docker to fix an issue that caused some Docker environments to break because the ./bin/docker file overwrites existing Docker binary files. This is a backward incompatible change that requires updates to your scripts and commands.

    • new icon Added a service configuration option to expose the database port to the host—Use the --expose-db-port= [Fix submitted by Adarsh Manickam from Zilker Technology](https://github.com/magento/magento-cloud-docker/pull/101).<PORT> option to expose the database port to the host when building the docker-compose.yml file: bin/ece-docker build:compose --expose-db-port=<PORT>

    • new icon New post-deploy command—Previously, the post-deploy hooks defined in the .magento.app.yaml file ran automatically after you deployed Adobe Commerce to a Cloud Docker container using the cloud-deploy command. Now, you must issue a separate cloud-post-deploy command to run the post-deploy hooks after you deploy. See the updated launch instructions for developer and production mode.

    • new icon Added the --rm option to ./bin/magento-docker commands for the build and deploy containers. This removes the container after the task is complete.

    • new icon Updates to build:compose command

      • new icon Added the --sync-engine="native" option to the docker-build command to disable file synchronization when you generate the Docker Compose configuration file in developer mode. Use this option when developing on Linux systems, which do not require file synchronization for local Docker development. See Synchronizing data in the Docker environment.
    • new icon Changed the default file synchronization setting from docker-sync to native. Fix submitted by Mathew Beane from Zilker Technology.

  • new icon Validation improvements

    • new icon Added validation to the deployment process for local Docker development environments to verify that the Cloud environment configuration includes the encryption key required to decrypt the database. Now, you get an error message in the log if the environment configuration does not specify a value for the encryption key.

    • new icon Added a container health check to the Elasticsearch service to ensure that the service is ready before continuing with build and deploy processing. If the health check returns an error, the container restarts automatically.

05f2f56e-ac5d-4931-8cdb-764e60e16f26