Docker Tutorial – Comment installer Docker ?

09/07/2019

Aucun commentaire

A la découverte de Docker – Construire un environnement de dev pour déployer du static

Non, ce ne sera pas un énième article sur Docker. Je pourrais vous expliquer, au travers de nombreuses lignes, pourquoi vous devez vous y mettre et quels bénéfices vous pourrez en tirer. Cependant, je préfère d’ores et déjà vous partager ces excellents articles. Ils traitent déjà à merveille le sujet et vous permettront de comprendre les fondamentaux :

docker-logo-tutorial

Pour les moins curieux, je vous résume très rapidement ce qu’est Docker. Il s’agit d’une plate-forme logicielle qui vous permet de concevoir, tester et déployer des applications rapidement. En effet, ce produit repose sur la notion d’unités normalisées qu’on appelle conteneurs. Avec Docker, vous serez capable “d’encapsuler” votre application dans un environnement dit isolé.

Dans un cadre professionnel, cela permet entre autre, de s’assurer que chaque développeur travaille sur le même environnement. On se retrouve avec la même version des outils engagés dans le projet. Il y a donc une homogénéisation de l’écosystème. Et l’atout numéro 1 de cette plateforme , c’est qu’elle permet de déployer des solutions applicatives très rapidement via des plate-formes telles que Kubernetes ou encore Rancher.

Dans cet article, vous découvrirez comment construire un environnement de dev. A l’issue de cet article, vous serez capable de faire tourner du static (entendez html, js, css). D’ailleurs, lorsqu’on possède un ordinateur sans environnement, et qu’un beau jour on souhaite s’amuser à construire un mini site web, la plupart des personnes se tourneront vers une solution de type WAMP. Je n’ai rien de particulier contre ce dernier, c’est pour vous poser le contexte !

C’est parti !

docker-tutorial

 

Commencez donc par installer Docker sur votre machine ! Voici un lien qui pourrait vous être utile pour se faire : https://www.docker.com/products/docker-desktop (sélectionnez selon votre OS). C’est bon ? Docker tourne sur votre machine ? Parfait, nous pouvons construire notre kit starter.

1 – Construction de l’architecture de notre projet

Dans votre répertoire de travail préféré, créez un dossier qu’on nommera static. Dedans, placez-y un fichier Dockerfile et créez aussi un nouveau dossier www.

2 – Construction du Dockerfile

Le Dockerfile va nous permettre de construire notre image Docker. Il se situe à la racine du projet. Dans celui-ci, copiez/collez le contenu suivant :

FROM registry.gitlab.com/joprotin/docker/apache:2.4
COPY www /var/www/html 

Ici, “FROM” permet de définir notre image de base. Attention, vous pouvez utiliser ce terme une seule fois dans un Dockerfile.

“registry.gitlab.com/joprotin/docker/apache:2.4” est le nom de notre image. Celle-ci existe et est disponible depuis mon registry gitlab personnel. Il faut savoir qu’il existe une plate-forme : le Docker Hub, qui propose un nombre incalculables d’images pré-construites pour vous. Mais cela vous limite à l’usage de ces images sans possibilité de les modifier. Vous pouvez alors parfaitement construire vos propres images et les mettre sur Docker Hub (ou sur un registry GitLab comme je l’ai fait ici) pour la rendre disponible et l’utiliser. “registry.gitlab.com/joprotin/docker/apache:2.4” est donc l’image docker que j’ai construite et qui va nous permettre d’avoir un apache qui tourne dans notre conteneur.

Et au passage, n’hésitez pas à poster un commentaire si vous êtes intéressé pour construire votre propre image docker, je pourrais alors y consacrer un article.

Ensuite, nous savons que le répertoire exposé au sein d’Apache est /var/www/html. On copie alors nos fichiers static dans ce répertoire (comme vous le feriez via un outil tel que WAMP).

3 – Déposez vos fichier static

Et c’est tout ! Enfin presque. Il nous reste juste à placer notre site static dans www. Voici un petit starter template pour tester : https://getbootstrap.com/docs/4.3/getting-started/introduction/#starter-template

Il contient du css, du js via bootstrap qui utilise jquery, du html. Bref, tout ce dont nous avons besoin pour tester que notre site static tourne bien dans notre environnement Docker.

Créez un fichier index.html dans www et copiez le contenu du starter template bootstrap dans ce fichier. Ok, tout est prêt !

Exécutez le conteneur crée

Construisons le tout avec cette ligne de commande (à exécuter à la racine de votre projet) :

cd static
docker build -t starter_static .

Attention : le point à la fin est important. Cela veut dire que nous voulons exécuter notre Dockerfile.

Ensuite, lançons tout cela :

docker run -p 80:80 starter_static

Rendez-vous maintenant sur http://localhost dans votre navigateur préféré et observez le résultat.

Votre site static tourne et affiche un magnifique h1 “Hello, world!”. Le js est bien interprété, tout tourne parfaitement dans cet environnement isolé ! Si vous voulez modifier le fichier index.html, vous devez refaire la commande “docker build -t starter_static .” puis “docker run -p 80:80 starter_static” pour que vos modifications soient bien prises en compte. 

Troubleshooting

Si vous avez déjà une instance qui tourne sur le port 80 sur votre machine (un serveur apache, nginx, skype ou autre service utilisant ce port, désactivez ce(s) service(s). Sinon, ça ne marchera pas car le port est occupé !).