STANDARDISE ENVIRONMENTS

One of the main challenges of scaling an application and continuous integration across the lifecycle of an application is the consistency across all environments. Setting up a Magento 1 Docker image for your development team to use across their development, testing, staging and production environments is a great way to setup the team and the site up for success.

PORTABILITY

Combining Magento with Docker gives you maximum flexibility in porting your eCommerce application across any number of cloud providers such as AWS, Rackspace, Google Computer Engine, Virtualbox and more. As long as the Operating System supports docker images, you can pull down the images and create your working environment quite swiftly.

SECURITY AND ISOLATION

Docker ensures that your development stack and it’s components have there own resources and ports which are isolated from each other.  If you felt the need for example to install Jira which requires Java to run on your staging environment you could potentially do so along side Magento 1 even though it has quite a different architecture.

DEVELOPMENT DOCKER BASE

Let’s start by setting up a development environment for OS X which includes all the main services in their respective container.  One of the challenges found when starting off with Docker was creating a basic structure to build upon but without going over board with the configuration & automation of the stack.  Rather than provide the images let’s build it all out.  By using docker compose for the backbone (internal/external ports, links) and individual Docker files to describe the inner details (libraries, init scripts etc) its a straight forward way to understand the architecture.

This base framework aims to succinctly allow you to expand it to your own needs.  On your separate environments you could configure slightly different environmental parameters which are native to it such as base url, database/redis authentication, etc).  With the docker install files and scripts we are going to create a base Magento 1 Development environment for Magento Community 1.9.x which will support the following components in there own containers for OS X.

  • PHP5.6, PHP FPM
  • nGinx
  • MariaDb
  • Redis

Feel free to download and play with the stack at Github:
Magento 1 docker install