NOTE: This blog post was first posted in 2019 on another blog site.

Fed up with setting up an environment at each project startup?

You change your PC, and you have to reinstall everything?

Your development works on your PC but not in production??

Your friends tell you about dock but you still haven’t used it???

Prerequisite

A recent version of docker installed.

Advantages of a development environment based on docker

  • one dev environment per project (MySQL version, PHP version, OS version, …) => you work on 3 projects at the same time, one using PHP 5.4 and MySQL 5.1, one using PHP 7.1 MySQL 8, another 7.0.33 and MySQL 5.6, …
  • a dev environment identifcal (or almost) with pre-production and production => you avoid disappointments like “my code works on my computer, I don’t understand!!” in response to the client/manager who tests on a pre-prod or prod
  • you can share your docker images with other bichon developers and also share your docker-compose file
  • thus in a team, when the docker environment is ready to use, the development environment is mounted in a few seconds (a few minutes the first time, the time to download the images used by the environment)
  • you can easily assemble and disassemble your environment with the loading of a dataset
  • Style! => you want to have style, the style of the bichon?

Disadvantages of a development environment based on docker

  • it is necessary to have installed docker on its station (is it really an inconvenience?)
  • Docker simplifies life, but it also brings a bit of complexity when you don’t master it.