Posted on
21/4/2023
At iDeMa we are a small team working on large projects for prestigious clients. The vast experience of each of us has taught us to be pragmatic about the choice of technical solutions we use. And by a certain ideology, we naturally lean towards #open source solutions when they exist.
In the context of the realization of a project for one of our (prestigious) customers, we therefore started with a proven technical base, based on our in-house engine (our framework). But while we're at it, we might as well use the latest stable versions of the #PHP programming language and the #PostgreSQLdatabase (among others).
The "snag" is that our workstations must be able to run our old projects, with the versions that were in use when they were created a few months or even years ago... a well-known headache for all the developers on the planet!
So yes, solutions exist and until now, we configured a dedicated development server and a local version, which took time and did not offer exemplary flexibility. So it was time to take a closer look at a technology that is highly sought after by IT recruiters, and above all, very proven: " #Docker ".
#Docker, what is it? Let's ask #ChatGPT, here is an excerpt of his answer:
" Docker is a technology that allows to package applications and their dependencies into isolated "containers", which ensures their reliable and consistent execution on any system. Developers can package their application with everything it needs to run and distribute it easily and reliably. Docker containers are similar to shipping containers: they are like airtight boxes that contain everything the application needs to run and can be feasily transported from one place to another without affecting the contents. "
Perfect! On paper at least... well, on the screen. So we decided to spend some time studying and testing the subject. Besides, time is always lacking but sometimes these few "lost" hours, we recover them largely at the end.
So here we are, installing Docker Desktop, following the online tutorial and typing a lot of command lines in our "# PowerShell". The main principles and some essential subtleties are quickly assimilated, but we'll admit that we had to get out the oars a bit to use the #volumescorrectly... What are the volumes ? It's essential in our case: it's basically the bridge between your system and the container, where files are shared and seen from both sides. Because without volumes, a container is completely isolated.
Once these steps digested, and to come back to the project for our presti... client, we started to create our custom container. And after a few steps of configuration, the project was running on our workstations... but with an unexpected slowness: 30 seconds to display a simple web page... in short, not very usable!
But if so many developers are using it, there must be something wrong. You wonder what the solution is?Install the container in a Linux sub-layer ofWindows. Yes, it exists: it's called #WSL, but we'll talk about it another time, probably...
At iDeMa we have adopted Docker, and the first benefits are already being felt. Now we candockerizeall our applications, and use Docker on our production environments!
By Christophe MERCET, Project Manager.
And don't miss any more news