Skip to content
Fastest Magento 2 Docker dev environment ever for Mac and Linux
Shell
Branch: master
Clone or download
danielozano Merge pull request #51 from ihor-sviziev/patch-4
Update nginx.conf with missing changes
Latest commit 2a542e1 Aug 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin [Task] Add command descriptions to clarify what they are doing Oct 19, 2018
config Fix magento setup Aug 13, 2019
console [Task] Add functionality to automatically fix permissions issues on l… Mar 8, 2019
docker-compose Update docker-compose version and also include an extra bind path to … Mar 8, 2019
docs Fix link to php docker image Jun 11, 2019
.gitattributes First Commit with first version of docker setup and readme instructions Aug 9, 2018
.gitignore First Commit with first version of docker setup and readme instructions Aug 9, 2018
CHANGELOG.md
README.md Documentation updates and Video tutorials section. Oct 26, 2018
composer.json [Task] Add composer keywords Oct 17, 2018

README.md

Magento 2 Dockergento

Plug and play Magento 2 dev environments with docker. Fastest performance ever on Mac and Linux.

Performance Comparison

Up to 7x faster development experience on Mac compare to standard docker setups.

Dockergento speed comparison

Check out all benchmarks

Learn more about how that is achieved


What is dockergento?

Dockergento is just a bash script ready to use in Linux and Mac to be able to use docker with best native performance.

While performance might no be a problem for Linux, using this tool is the only way you can overcome performance issues on Mac. Dockergento allows you to have different configuration for each system while using the same workflow. So your whole team can work the same way no matter which computer they are using. It just works!

Supported Systems

  • Mac
  • Linux

Video Tutorials

If you do not like reading and prefer watching videos. Check out all video tutorials here:


Installation

You only need 3 things on your local machine: git, docker and dockergento

Install Docker

Follow the installation steps for your system.

Mac
  1. Install Docker on Mac

  2. Configure File Sharing settings for the folder that contains your projects

    File Sharing Configuration

  3. Optionally you can also apply these performance tweaks

Linux
  1. Install docker

  2. Configure permissions

Install dockergento console

  1. Clone this repo

    git clone https://github.com/ModestCoders/magento2-dockergento.git
    
  2. Add dockergento bin into your $PATH

    sudo ln -s $(pwd)/magento2-dockergento/bin/dockergento /usr/local/bin/
    
  3. Open a new terminal tab/window and check that dockergento works

    which dockergento
    dockergento
    

Project Setup

Depending the type of project, you can use one of the following setups:

Dockerize existing project

cd <your_project>
dockergento setup

New project

mkdir <new_project_name> && cd <new_project_name>
dockergento setup
dockergento create-project

Magento 2 github for contribution

Disclaimer: Performance on Mac is slower here due to the huge amount of files in app (~20.000 files)

Workaround to improve performance on Mac
  1. Remove these lines on docker-compose.dev.mac.yml

        - ./app:/var/www/html/app:delegated
        - ./dev:/var/www/html/dev:delegated
        - ./generated:/var/www/html/generated:delegated
        - ./pub:/var/www/html/pub:delegated
        - ./var:/var/www/html/var:delegated
    
  2. Sync app using unison container. Add this in docker-compose.dev.mac.yml

    unison:
      volumes:
        - ./app:/sync/app
    
  3. Mirror not synced folders before executing composer the first time

    dockergento start
    dockergento mirror-host app dev generated pub var
    
  4. If you are editing code in app, you need to start unison watcher to sync files between host and container.

    dockergento watch app/code/Magento/<module_name>
    
git clone https://github.com/magento/magento2.git
cd magento2
dockergento setup

Usage

Start Application

dockergento start
dockergento composer install
sudo vim /etc/hosts
// Add -> 127.0.0.1 <your-domain>

Open http://<your-domain> in the browser 🎉

Workflow

See detailed documentation about development workflow with dockergento


More Documentation

Troubleshooting


ChangeLog

Developers

Donations 🙏

We’ve worked very hard to implement this tool. If you find it useful and want to invite us for a beer, just click on the donation button. Thanks! 🍺

Donate

Resources

This project has been possible thanks to the following resources:

Licence

Copyright

(c) ModestCoders

You can’t perform that action at this time.