Docker development quick reference
This Quick Reference provides information about using Docker Compose commands, the Docker Compose configuration generator, and the Cloud Docker for Commerce CLI to configure, deploy, and use your Docker environment for application development. See the following topics for more detailed instructions:
Docker Compose
Docker Compose is a tool for defining and running multi-container Docker applications. The following table lists the docker-compose
commands for building, deploying, and operating Cloud Docker for Commerce. You can also use Magento Cloud Docker CLI commands to complete Docker Compose tasks.
Action | Command |
---|---|
Build and start Docker environment | docker-compose up -d |
Build environment | docker-compose run --rm build cloud-build |
Deploy environment | docker-compose run --rm deploy cloud-deploy |
Run post-deploy hooks | docker-compose run --rm deploy cloud-post-deploy |
Connect to CLI container | docker-compose run --rm deploy bash |
Use ece-tools command |
docker-compose run --rm deploy ece-command <command> |
Use Magento command | docker-compose run --rm deploy magento-command <command> |
Stop and remove Docker environment (removes volumes) | docker-compose down -v |
Stop Docker environment without destroying containers | docker-compose stop |
Resume Docker environment | docker-compose start |
List images | docker-compose images |
List containers and ports | docker-compose ps or docker ps |
The --rm
option automatically removes containers when they stop. This setting overrides any restart policy specified in the service configuration and prevents orphaned containers from consuming excess disk space. See docker-compose run
in the Docker command-line reference.
Docker Compose configuration generator
Use the Cloud Docker for Commerce .vendor/bin/ece-docker build:compose
CLI commands to generate the Docker configuration files and build your environment.
Use the following command to view the available build options:
1
php ./vendor/bin/ece-docker build:compose -h
See Service versions for additional information about the service configuration options for the ece-docker build:compose
command.
Override configuration
Because the ece-docker build:compose
command overwrites the base configuration, we recommend saving your customizations in an override configuration file. You can use this method to merge multiple custom configurations. See Docker Docs: Multiple Compose files.
The docker-compose up
command considers the base docker-compose.yml
configuration by default. If the docker-compose.override.yml
file is present, then the override configuration merges with the base configuration.
Use the -f
argument to specify an alternate configuration file. The following example uses the default configuration and merges each custom configuration sequentially:
1
docker-compose -f docker-compose.yml -f docker-compose-custom.yml [-f more-custom-docker-compose.yml] up
Magento Cloud Docker CLI
Use the Cloud Docker for Commerce bin/magento-docker
CLI commands to run docker-compose tasks more efficiently. For example, instead of using a separate docker-compose command for the build, deploy, and post-deploy tasks in the Docker environment, you can use the ece-redeploy
command to complete all tasks.
1
./bin/magento-docker ece-redeploy
The following example shows the ./bin/magento-docker
command and output when connecting to the bash shell:
1
./bin/magento-docker bash
1
2
3
4
5
Starting project_redis_1 ... done
Starting project_db_1 ... done
Starting project_elasticsearch_1 ... done
[ ok ] Starting enhanced syslogd: rsyslogd.
root@deploy:/app#
Action | Command |
---|---|
Connect to bash shell | ./bin/magento-docker bash |
Pull the latest images | ./bin/magento-docker pull |
Build application | ./bin/magento-docker ece-build |
Deploy application | ./bin/magento-docker ece-deploy |
Run post-deploy hooks | ./bin/magento-docker ece-post-deploy |
Re-build and re-deploy application | ./bin/magento-docker ece-redeploy |
Stop containers | ./bin/magento-docker stop |
Start containers | ./bin/magento-docker start |
Restart containers | ./bin/magento-docker restart |
Destroy containers | ./bin/magento-docker down |
Destroy, re-create, and start containers | ./bin/magento-docker up |
Clears Redis cache | ./bin/magento-docker flush-redis |
Clears Varnish cache | ./bin/magento-docker flush-varnish |
Access database | ./bin/magento-docker ece-db |
Run a command in a PHP container Supports the following values for the PHP version: 7.1, 7.2, 7.3, 7.4, 8.0 |
./bin/magento-docker php <version> |
Use the following command to view the magento-docker CLI command help:
1
./bin/magento-docker -h