Retour à la liste

Démarrage rapide de projets avec Docker

Cover Image for Démarrage rapide de projets avec Docker
Dylan Ballandras
Dylan Ballandras

Je viens d'installer WSL2 sur mon ordinateur avec une installation Ubuntu 20.04 vierge. et je ne voulais pas installer la plupart des langages et logiciels que j'utiliserais pour mes projets.

Alors, je me suis forcé à utiliser docker run --rm autant que possible.

Voici quelques exemples pour certains types de projets.

Installer et exécuter des projets basés sur Node/NPM

Imaginez que vous exécutez un projet basé sur Snowpack ou Gatsby.

docker run --rm -it -v $PWD:/usr/src/app -w /usr/src/app node:12 yarn install
docker run --rm -it -p 8000:8000 -v $PWD:/usr/src/app -w /usr/src/app node:12 yarn start

Exécuter un projet PHP

Vous pouvez même composer create, composer install ou php -S 0.0.0.0:80 -t public un projet Symfony.

docker run --rm --interactive --tty --volume $PWD:/app composer create-project sylius/sylius-standard acme
docker run --rm --interactive --tty --volume $PWD:/app composer install
docker run -it --rm -p 8000:8000 -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.4-cli php -S 0.0.0.0:8000 -t public

Garder la trace de vos scripts

Vous pouvez tirer parti d'un Makefile ou d'un script Shell pour valider ces scripts.

Par exemple, pour mon blog, j'utilise la configuration suivante :

.DEFAULT_GOAL := help

.SILENT: help

path := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))

app@install:
	docker run --rm -it -v ${path}:/usr/src/app -w /usr/src/app node:12 yarn install

app@run:
	docker run --rm -it -p 8000:8000 -v ${path}:/usr/src/app -w /usr/src/app node:12 yarn develop --host=0.0.0.0

Grâce à cela, je peux essayer les prochaines versions de Node avant de les mettre en production.

Vous pouvez trouver comment faire facilement la même chose pour tout type de langage en allant sur le site https://hub.docker.com/. Il y a souvent une partie Run a single script pour les images Docker principales.

Ensuite, si vous avez besoin d'aller plus loin, l'utilisation de docker-compose semble être intéressante pour créer un "network" de conteneur (ex. ajouter une base de données, un mailcatcher, etc.).

Sources :