J'ai demandé à Claude
J'ai récemment recréé feeds.duhaz.fr avec Lovable, une plateforme de développement assistée par IA. Lovable m'a permis de refondre complètement mon agrégateur de flux RSS en un temps record, avec une interface moderne et des fonctionnalités améliorées.
Mais voilà, une fois l'application créée avec Lovable, il fallait la déployer sur mon serveur. C'est là que Claude entre en jeu pour la partie DevOps !
Le besoin initial
Mon objectif était simple : créer une stack Docker qui :
- Contienne Node.js et Git
- Écoute sur le port 9876
- Se synchronise automatiquement avec mon repository GitHub
- Utilise un volume permanent pour persister les données
La discussion
J'ai commencé par une question basique : "Je cherche une image Docker avec Node.js et Git d'installé". Claude m'a tout de suite proposé plusieurs options, avec l'image officielle Node.js qui contient déjà Git.
Ensuite, je lui ai demandé de créer un Dockerfile complet avec un volume permanent et l'écoute sur le port 9876. Jusqu'ici, classique.
Puis est venue la vraie complexité : je voulais que le conteneur se synchronise automatiquement avec mon repository GitHub au démarrage. Claude a alors créé un script entrypoint.sh qui :
- Clone le repository au premier démarrage
- Fait un git pull aux démarrages suivants
-Installe les dépendances npm
- Lance l'application
Le problème Portainer
C'est là que ça s'est compliqué. Quand j'ai essayé de déployer via Portainer (mon interface de gestion Docker), j'ai eu l'erreur : "No such image: nodejs-app:latest".
Le problème ? Portainer ne peut pas construire d'images à la volée. Il a besoin d'images déjà construites ou disponibles sur Docker Hub.
Claude a alors adapté la solution : plutôt que d'utiliser un Dockerfile custom, on utilise directement l'image officielle node:20 et on exécute tous les scripts nécessaires au démarrage via la directive command.
La solution finale
Voici le docker-compose.yml final qui fonctionne parfaitement avec Portainer :
version: '3.8'
services:
nodejs-app:
image: node:20-alpine
command: >
sh -c "
apk add --no-cache git &&
cd /app &&
if [ ! -d .git ]; then
echo 'Clonage du repository...' &&
git clone https://github.com/laurentdu51/feeds-duhaz-fr-v3 .
else
echo 'Mise à jour du repository...' &&
git pull origin main || git pull origin master
fi &&
echo 'Nettoyage...' &&
rm -rf node_modules package-lock.json &&
echo 'Installation des dépendances...' &&
npm install &&
echo 'Liste des dépendances installées:' &&
ls -la node_modules/.bin/ &&
echo 'Démarrage de l application avec npx...' &&
npx vite --host 0.0.0.0 --port 9876
"
ports:
- "9876:9876"
volumes:
- app_data:/app
environment:
- NODE_ENV=development
restart: unless-stopped
working_dir: /app
volumes:
app_data: {}
Ce que j'ai appris
L'image Node.js officielle contient déjà Git - pas besoin de chercher une image custom
Portainer ne construit pas les images - il faut soit construire manuellement, soit utiliser des images publiques
On peut tout faire avec la directive command - c'est moins élégant qu'un Dockerfile custom, mais ça fonctionne parfaitement pour Portainer
Claude s'adapte en temps réel - À chaque erreur, Claude a su rebondir et adapter la solution
Le résultat
Maintenant, je peux déployer mon application directement depuis Portainer en quelques clics. À chaque redémarrage du conteneur, le code se synchronise automatiquement avec GitHub. Exactement ce que je voulais.
Ce qui m'aurait pris plusieurs heures de recherche et de tests m'a pris 15 minutes de discussion avec Claude. L'IA ne remplace pas la compréhension technique, mais elle accélère considérablement le processus de résolution de problèmes.
De Lovable à la production
Cette expérience illustre parfaitement le nouveau workflow de développement avec l'IA :
Lovable pour créer rapidement l'application avec une interface moderne
Claude pour gérer le déploiement et l'infrastructure
GitHub pour la synchronisation et le versioning
Portainer pour la gestion en production
Le tout en quelques heures au lieu de plusieurs jours. feeds.duhaz.fr v4 est maintenant en ligne, avec un pipeline de déploiement automatisé. La boucle est bouclée !
Indroduction
Aujourd'hui, j'avais besoin de déployer une application Node.js avec Docker sur mon serveur. Plutôt que de passer des heures à chercher sur Stack Overflow et à compiler des morceaux de documentation, j'ai décidé de demander directement à Claude de m'aider.
Aujourd'hui, j'avais besoin de déployer une application Node.js avec Docker sur mon serveur. Plutôt que de passer des heures à chercher sur Stack Overflow et à compiler des morceaux de documentation, j'ai décidé de demander directement à Claude de m'aider.
Cet article a été rédigé en collaboration avec Claude, qui a non seulement créé la solution technique, mais a aussi aidé à structurer cet article.
Nombre de Lectures : 41
Date de mise en ligne : 10 oct. 2025 à 19:30