Dockerfile

Un Dockerfile est un fichier texte contenant des instructions pour créer une image Docker. C’est comme une recette pour construire votre application.

Structure de base d’un Dockerfile

  1. Définir une image de base Exemple :
FROM node:16
  1. Copier les fichiers dans l’image Exemple :
COPY . /app
WORKDIR /app
  1. Installer des dépendances Exemple :
RUN npm install
  1. Exposer un port (optionnel) Exemple :
EXPOSE 3000
  1. Définir la commande à exécuter au démarrage Exemple :
CMD ["npm", "start"]

Commandes utiles

  • Construire une image :
docker build -t monapp:1.0 .
  • Utiliser l’image :
docker run -p 3000:3000 monapp:1.0

Docker Compose

docker-compose.yml est un fichier pour définir et gérer plusieurs conteneurs en même temps. Il simplifie les choses, surtout si vous avez plusieurs services (ex : backend, frontend, base de données).

**Structure de base d’un fichier ****docker-compose.yml**

  1. Déclarer une version Exemple :
version: "3.9"
  1. Définir les services Exemple :
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    command: npm start
  1. Ajouter une base de données (exemple) Exemple :
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

Commandes utiles

  • Lancer les services :
docker-compose up
  • Arrêter les services :
docker-compose down
  • Recréer les conteneurs après modification :
docker-compose up --build

Exemple Complet

Dockerfile

FROM node:16
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]

docker-compose.yml

version: "3.9"
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    command: npm start
 
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

Étapes :

  1. Créer un **Dockerfile** et un **docker-compose.yml**.
  2. Lancer avec :
docker-compose up
  1. Votre application est prête sur **http://localhost:3000**.