You’re a web developper and among your daily tasks are installing/updating/running the same scripts, binaries again again and again.
As a Backend PHP developper, we all have php-cli installed using Homebrew. Several tools rely on the PHP runtime, such as Composer, PhpUnit, Phing and more. Nowadays Npm/Bower/Grunt are becoming defacto standard for web projects and are part of your app building/developing process.
Getting all theses tools set up, requires time. Each one has severals ways to be installed/updated. What’s your company strategy ? How do you maintain consistency (same versions of software) between all your developers. On-boarding new developers is a nightmare and takes severals days to get their workstation to work. Blindly following an outdated README. …
In the good old days deploying your app/website to production was as easy as droping some files through your favorite FTP client. Whereas todays app are more complex and more technologies/people are involved in the process . Several building process are required before even thinking of pushing you app to production. You all know these build step. Here is a non exhaustive list: handling backend dependencies with composer,generating autoloads, inflate configuration files with db credentials and environnement dependent parameters building the whole front-end with npm, bower and grunt.
The preferred tool for streamlining this tedious step is Phing. Phing is port of the java ANT tool. …
When running docker images you’ll see the following, images weighting several hundred of MBs. Even simple container, providing one singe service are heavy. Why ? Because base images used, such as Ubuntu, Centos and Debian images are themselves very heavy.
Images based on busybox could have been an alternative, but is too far from full-featured linux OSes, we’re used to. And building images from busybox aren’t straighforward, and often requires compilation from source.