Intermédiaire45 min30 XP
Objectifs de cette leçon
- Déployer une application avec l'assistance IA
- Configurer les environnements de production
- Monitorer et maintenir l'application déployée
Docker et déploiement 🚀
Le pipeline de déploiement
Code source │ ↓ Dockerfile → docker-compose.yml │ ↓ Build de l'image Docker │ ↓ Push vers un registre │ ↓ Pull sur le serveur de production │ ↓ docker compose up -d │ ↓ Application en ligne ✅
Dockeriser une application complète
docker-compose.yml
version: '3.8' services: frontend: build: ./frontend ports: - "3000:3000" environment: - API_URL=http://api:8000 networks: - app-network api: build: ./api ports: - "8000:8000" environment: - DB_HOST=mysql - DB_NAME=app - DB_USER=root - DB_PASS=secret depends_on: - mysql networks: - app-network mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: app volumes: - mysql-data:/var/lib/mysql networks: - app-network volumes: mysql-data: networks: app-network: driver: bridge
Déployer sur un VPS
Étape 1 : Préparer le serveur
# SSH vers le serveur ssh root@votre-vps.com # Installer Docker apt update && apt install -y docker.io docker-compose-plugin # Ajouter l'utilisateur au groupe docker usermod -aG docker $USER
Étape 2 : Cloner et lancer
# Cloner le projet git clone https://github.com/user/projet.git cd projet # Build et lancement docker compose build docker compose up -d # Vérifier docker compose ps docker compose logs -f api
Étape 3 : Configurer Nginx
server { listen 80; server_name monapp.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; } location /api { proxy_pass http://localhost:8000; proxy_set_header Host $host; } }
Étape 4 : SSL avec Let's Encrypt
apt install certbot python3-certbot-nginx certbot --nginx -d monapp.com
Déployer sur Vercel (Frontend)
# Installer Vercel CLI npm i -g vercel # Déployer vercel # Le déploiement automatique se déclenche à chaque push sur main
Utiliser l'IA pour le déploiement
Bon prompt :
Crée un Dockerfile pour une application Next.js avec les spécificités : - Multi-stage build (deps → build → runner) - Output standalone - Utilisateur non-root - Healthcheck - Port 3000
Exercices 🎯
- Docker : Dockerisez une application Node.js + MySQL.
- VPS : Déployez l'application sur un VPS (DigitalOcean, Vultr, etc.).
- CI/CD : Configurez GitHub Actions pour builder automatiquement.
Prochaine leçon : Projet final.
Pipeline de déploiement
InteractifÉtape 1/6