TP 4 : Réalisation d’une pile applicative#

TP

1. Installation de docker-compose#

L’installation de docker-compose nécessite Python 3.

Sur Linux et MacOS, il est normalement préinstallé, sur Windows il faut l’installer en prenant garde de l’ajouter au PATH.

On peut ensuite installer docker-compose via la commande suivante :

# Ubuntu / MacOS
pip3 install docker-compose

# Windows
python -m pip install docker-compose

Et voilà ! L’utilitaire docker-compose est installé sur votre système.

2. Conception#

Nous ne traiterons ici que la version 3 des configurations docker-compose.

L’objectif de docker-compose est de regrouper la configuration d’une stack applicative sous la forme d’un ou plusieurs fichiers. Un fichier docker-compose est un fichier YAML composé de :

  • La version de docker-compose utilisée

  • Une section networks

  • Une section volumes

  • Une section services

La référence complète des champs utilisables en docker-compose est disponible ici.

On peut ainsi reprendre l’infrastructure suivante :

Sous cette forme :

version: "3"

networks:
  internal:

volumes:
  pg-data:

services:
  pg:
    image: postgres:14-alpine
    networks:
      - internal
    volumes:
      - pg-data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: "admin"
      POSTGRES_PASSWORD: "password"
      POSTGRES_DB: "grp"

  interface:
    image: grp-api:latest
    command: yarn run start:studio
    environment:
      DATABASE_URL: "postgresql://admin:password@pg:5432/grp?schema=public"
    networks:
      - internal
    ports:
      - "5555:5555"

Enregistrer le tout dans un fichier docker-compose.yml et exécuter la commande :

docker-compose up -d

Et enfin visiter le site localhost:5555 pour accéder à l’interface de gestion de la base de données.

Exercice#

  • Représenter l’infrastructure du TP3 sous la forme d’un fichier docker-compose.yml. Pour rappel, l’architecture est la suivante :