ece-tools package

The ece-tools package is a set of scripts and tools designed to manage and deploy Magento Commerce Cloud projects. The ece-tools package simplifies many Magento Commerce Cloud processes, such as deploying to a Docker environment, managing crons, verifying project configuration, and applying Magento patches and hot fixes. You can view and contribute to the open-source ece-tools repository on Github.

If you use a version of Magento Commerce Cloud that does not contain the ece-tools package, then you must upgrade your project. If you currently use the ece-tools package and you need to update it, see Update ece-tools version.

The ece-tools package is compatible with Magento Commerce—starting with version 2.1.4—and contains scripts and Magento Commerce Cloud commands designed to help manage your code and automatically build and deploy your projects.

The following lists the available ece-tools commands:

1
php ./vendor/bin/ece-tools list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Available commands:
  build                    Builds application.
  db-dump                  Creates database backups.
  deploy                   Deploys application.
  help                     Displays help for a command.
  list                     Lists commands.
  patch                    Applies custom patches.
  post-deploy              Performs after deploy operations.
  run                      Execute scenario(s).
 backup
  backup:list              Shows the list of backup files.
  backup:restore           Restore important configuration files. Run backup:list to show the list of backup files
 build.
  build:generate           Generates all necessary files for build stage.
  build:transfer           Transfers generated files into init directory.
 cloud
  cloud:config:create      Creates a `.magento.env.yaml` file with the specified build, deploy, and post-deploy variable configuration. Overwrites any existing `.magento,.env.yaml` file.
  cloud:config:update      Updates the existing `.magento.env.yaml` file with the specified configuration. Creates `.magento.env.yaml` file if it does not exist.
 config
  config:dump              [dump] Dump configuration for static content deployment.
 cron
  cron:disable             Disable all Magento cron processes and kills currently running.
  cron:enable              Enable Magento cron processes.
  cron:kill                Kill all Magento cron processes.
  cron:unlock              Unlock cron jobs that stuck in "running" state.
 dev
  dev:git:update-composer  Updates composer for deployment from git.
 env
  env:config:show          Display encoded cloud configuration environment variables.
 error
  error:show               Display info about error by error id or info about all errors from the last deployment.
 module
  module:refresh           Refresh config to enable newly added modules.
 wizard
  wizard:ideal-state       Verifies ideal state of configuration.
  wizard:master-slave      Verifies master-slave configuration.
  wizard:scd-on-build      Verifies SCD on build configuration.
  wizard:scd-on-demand     Verifies SCD on demand configuration.
  wizard:scd-on-deploy     Verifies SCD on deploy configuration.
  wizard:split-db-state    Verifies ability to split DB and whether DB was already split or not.

Build and deploy

The ece-tools package contains commands to perform operations for the build, deploy, and post-deploy stages of launching your Magento Commerce Cloud application. For example, the php ./vendor/bin/ece-tools build command begins the application build process.

By default, these ece-tools commands are in the hooks property of the .magento.app.yaml configuration file.

Docker configuration generator

The ece-tools package includes a dependency for the magento/magento-cloud-docker package, which provides functionality and configuration files for Docker images to launch a Docker development environment for Magento Commerce Cloud. You can also run Magento Cloud Docker as a stand-alone package. See Docker development.

Services, routes, and variables

You can use the ece-tools package to display detailed information about the Base64-encoded Cloud variables used in any Cloud environment. The following command shows all services, routes, and variables.

1
php ./vendor/bin/ece-tools env:config:show

To display a specific set of information, use the following format:

1
php ./vendor/bin/ece-tools env:config:show <option>
  • services—Displays the relationship data from the MAGENTO_CLOUD_RELATIONSHIPS environment variable, defined in the services.yaml file.
  • routes—Displays the configured routes for the project using the MAGENTO_CLOUD_ROUTES environment variable.
  • variables—Displays the configured variables for the project using the MAGENTO_CLOUD_VARIABLES environment variable.

Sample output for the services option:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Magento Cloud Services:
+-----------------------------------+----------------------------------+
| Service Configuration             | Value                            |
+-----------------------------------+----------------------------------+
| database:                                                            |
+-----------------------------------+----------------------------------+
| host                              | 127.0.0.1                        |
| password                          | <password>                       |
| port                              | 3306                             |
+-----------------------------------+----------------------------------+
| elasticsearch:                                                       |
+-----------------------------------+----------------------------------+
| host                              | 127.0.0.1                        |
| port                              | 9200                             |
...

Verify environment configuration

There is a set of verification commands available to help evaluate the configuration of your project. See Smart wizards in the Optimize deployment section for a detailed description of each wizard command. The wizard:ideal-state command runs automatically during the build phase. To verify the ideal state of your project:

1
php ./vendor/bin/ece-tools wizard:ideal-state

You must run the wizard:ideal-state command in the Cloud environment. The command always returns the The configured state is not ideal error when run in the local development environment.

Sample output:

1
Ideal state is configured

For current Magento Commerce Cloud release information, see Release notes for ece-tools.

Magento patches and custom patches

The ece-tools package includes a dependency for the magento/magento-cloud-patches package, which delivers Magento patches and hot fixes that improve the integration of all Magento Commerce versions with Cloud environments and supports quick delivery of critical fixes. The magento/magento-cloud-patches also delivers custom patches that you add to your Magento Commerce Cloud project. See Apply patches.