Mage2click - Magento Docker Toolset
Mage2click toolset is a system-wide command-line tool for creating and managing simultaneously running Magento Docker projects with insanely easy installation and configuration. It includes plenty of configurable services and useful commands for developing and project orchestration right out of the box. On macOS systems, mutagen.io tool will be bundled in the toolset for high-performance files sync between host and Docker containers.
Table of contents
- What is included
- Authors Information
This setup assumes you are running Docker on a computer with at least 6GB of allocated RAM, a dual-core, and an SSD hard drive.
This configuration has been tested on macOS. Linux based systems still require testing. Any testing are welcomed!
To install Mage2click toolset to your system, simply run command below.
curl -sL raw.githubusercontent.com/mage2click/m2c/master/get | bash
Or shortened version of above.
curl -sL get.m2c.run | bash
What is included
Global system-wide services
After toolset is installed, you will have the next tools available locally:
Traefik is the leading open source reverse proxy and load balancer for HTTP and TCP-based applications that is easy, dynamic, automatic, fast, full-featured, production proven, provides metrics, and integrates with every major cluster technology. https://containo.us/traefik
Portainer is a lightweight management toolset that allows you to easily build, manage and maintain Docker environments. Created by experts, Portainer is an opinionated toolset that captures years of experience to allow you to reliably and quickly create, operate and trouble-shoot your Docker environments. https://portainer.io
MailHog is an email testing tool for developers. Allows to view messages in the web UI, or retrieve them with the JSON API. Optionally allows to release messages to real SMTP servers for delivery. https://github.com/mailhog/MailHog
Dnsmasq provides network infrastructure for small networks: DNS, DHCP, router advertisement and network boot. It is designed to be lightweight and have a small footprint, suitable for resource constrained routers and firewalls. http://www.thekelleys.org.uk/dnsmasq/doc.html
Toolset local homepage with links to all tools listed above -
All Docker images with services listed above required to be active for toolset functioning.
These services are configured to start automatically and should not be stopped. Without active Traefik and Dnsmasq, m2c backed projects can't work properly.
If you don't want auto-start of these services, you can disable it with the command below.
m2c global autostart off
Most of services are available with version on your choice.
All Magento Docker projects initialized with:
And optionally available:
After toolset is installed on your system, you may use it to initialize new or existing magento projects.
To get a list of all commands and usage information, run command below.
Interactive project initialization mode
To initialize project, open the desired directory with terminal and run
This command will launch project initialization in interactive mode. Simply follow the steps to configure the desired Magento Docker development environment.
Commandline project initialization mode
If at least one command argument is defined, automated setup will be started. All undefined parameters will be set with default values.
m2c init [parameters...] [flags...]
To get a list of all available parameters and flags for project configuration, run
m2c init --help
CLI Commands reference
Project area commands
m2c add service <service> [--help] m2c add domain <domain> [--help] m2c add [--help]
Adds optional service or extra domain to the project. Available optional services are:
m2c add --help for command usage information.
m2c bash [--debug] [--root] ...
Opens the bash prompt on the project's php Docker service. With
--debug flag, the bash prompt will be opened on the project's xdebug Docker service. With
--root flag, the root user will be used.
m2c cli [--debug] [--root] ...
Runs any CLI command without going into the bash prompt of the project's php service. With
--debug flag, the CLI command will run on the project's xdebug service. With
--root flag, the root user will be used.
m2c composer <command> [options] [arguments]
Runs Composer specific commands. Run
m2c composer for command usage information.
m2c db [command] [--help]
Database related commands. Import/Export database commands and MySQL CLI tool access. Available optional services are:
m2c db --help for command usage information.
Removes project Docker containers, volumes, and networks. Project sources on the host will be untouched. Don't forget to create a database backup before running this command.
The grunt command-line interface. Runs grunt specific commands at projects Docker container. Run
m2c grunt --help for command usage information.
Prints project info and Docker containers status.
Initializes project in the current directory. Run
m2c init --help for command usage information.
Magento command-line tool interface. Runs
bin/magento specific commands at projects Docker container. Its is shortened alias of
m2c magento command.
N98-magerun command-line tool interface. Runs
n98-magerun specific commands at projects Docker container. It is shortened alias of
m2c magerun command. Run
m2c mr --help for command usage information.
Node command-line tool interface. Runs
node specific commands at projects Docker container. Run
m2c node --help for command usage information.
NPM command-line tool interface. Runs
npm specific commands at projects Docker container. Run
m2c npm --help for command usage information.
m2c pwa <command|script> [--help]
PWA Studio related commands and wrapper for
yarn run command inside of project directory. Run
m2c pwa --help for command usage information.
m2c redis [options] [cmd [arg [arg ...]]]
Redis command-line tool interface. Runs
redis-cli specific commands at projects Redis Docker container. Run
m2c redis --help for command usage information.
m2c remove [service] [--help]
Removes optional service from the project. Available optional services are:
m2c remove --help for command usage information.
m2c restart [service [service ...]]
Restarts running project Docker services and starts all stopped ones. If services are explicitly specified, only specified will be restarted.
m2c share [region] [--help]
Starts sharing session over ngrok secure tunnels. Command accepts an optional parameter to specify a region. Ex.
m2c share eu. Available regions are
in. By default, region is
us. For proper functioning of this command, required dependencies will be installed. Please, visit https://github.com/shkoliar/magento-ngrok and https://github.com/shkoliar/docker-ngrok for more information. Run
m2c share --help for command usage information.
m2c sign [domain [domain ...]]
Signs SSL certificate for provided domain names. Only domains with .test TLD are allowed.
m2c start [service [service ...]]
Starts stopped project services. If services are explicitly specified, only specified will be started.
Prints project information and services status.
m2c stop [service [service ...]]
Stops active project services. If services are explicitly specified, only specified will be stopped.
m2c sync [command] [--help]
Controls the synchronization sessions between host and docker container.
Updates the project's docker configuration to the latest version.
Generates Uniform Resource Names (URN) for PHPStorm and remaps paths for the host.
m2c varnish <tool>
Run varnish command line tools such as
Adding information about other CLI commands is in progress...
Connecting to Database
Project database can be easily accessed in a few ways - with help of optional phpMyAdmin service or with database managing applications by using a direct connection to the database via SSH tunnel.
Read the article at project's wiki page on how to connect to your project's database - Connecting to Database
Debugging with Xdebug
Mage2click toolset supports Magento debugging with Xdebug out of the box. Only a few configuration steps are required.
Read the article at project's wiki page on how to use Xdebug with PHPStorm - Debugging with Xdebug