• 8 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 12/12/2019

Entraînez-vous en orchestrant vos images Docker avec Docker Compose

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

À vous de jouer !

Pour vous entraîner, réalisez cet exercice étape par étape. Une fois terminé, vous pouvez comparer votre travail avec les pistes que je vous propose.

Le CMS Ghost
Le CMS Ghost

Votre manager vous propose un nouveau défi ! Celui-ci voudrait créer un nouveau blog pour votre entreprise. Pour cela, il souhaite utiliser une architecture sous Docker et avec le CMS Ghost.

Les développeurs ont déjà bien avancé sur la réalisation de ce nouveau blog. Ils vous fournissent un repo Git, contenant l’ensemble des sources nécessaires à son fonctionnement. Pour le faire fonctionner, vous allez avoir besoin de deux conteneurs :

  • un conteneur MySQL ;

  • un conteneur pour Ghost.

Ainsi, la configuration nécessaire sera chargée depuis le fichier config.production.json présent à la racine du repo Git fourni par l’équipe de développement.

Il ne vous reste plus qu'à créer le fichier docker-compose.yml qui convient, pour faire fonctionner tous les conteneurs ensemble !

Livrable attendu

  • Le fichier  docker-compose.yml  décrivant votre configuration de Docker Compose pour faire fonctionner le blog.

Vérifiez votre travail

Assurez-vous que le fichier docker-compose.yml fonctionne correctement et permet de faire fonctionner le blog Ghost normalement, en étant connecté à sa base de données. Pour cela, lancez-le avec la commande docker-compose up -d  depuis le répertoire dans lequel se trouve le fichier.

Voici un exemple de fichier docker-compose.yml fonctionnel : 

version: '3'
services:
mysql:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: monPassword
MYSQL_DATABASE: ghost
MYSQL_USER: ghostuser
MYSQL_PASSWORD: ocrpassword
ghost:
depends_on:
- mysql
image: mon_image_docker
ports:
- "8080:80"
restart: always
environment:
NODE_ENV: production
volumes:
db_data: {}

Il peut y avoir des différences entre le fichier donné et celui-ci. Assurez-vous que ce ne sont que des différences de forme, mais pas de fond.

Exemple de certificat de réussite
Exemple de certificat de réussite