pipeline { agent any stages { stage('Checkout') { steps { echo '✅ Code checked out from Gitea' } } stage('Build Docker Image') { steps { sh ''' docker build -t management-platform:latest ./platform/ echo "✅ Docker image built" ''' } } stage('Deploy to Server 1') { steps { sh ''' docker stop management-platform 2>/dev/null || true docker rm management-platform 2>/dev/null || true docker run -d \ --name management-platform \ --restart unless-stopped \ -p 8088:5000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /root:/root \ -v /etc/passwd:/etc/passwd:ro \ -v /etc/shadow:/etc/shadow:ro \ -v /root/management-platform/config.py:/app/config.py:ro \ -v /root/management-platform/modules:/app/modules:ro \ -v /proc/meminfo:/proc/meminfo:ro \ -v /proc/stat:/proc/stat:ro \ -v /proc/loadavg:/proc/loadavg:ro \ -v /proc/uptime:/proc/uptime:ro \ management-platform:latest sleep 5 if docker ps | grep -q management-platform; then echo "✅ Deployed successfully" else echo "❌ Container failed to start" docker logs management-platform --tail=20 exit 1 fi ''' } } stage('Health Check') { steps { sh ''' sleep 3 if curl -f http://localhost:8088/health 2>/dev/null || curl -f http://173.249.20.244:8088/ 2>/dev/null; then echo "✅ Platform responding" else echo "⚠️ Health check failed" docker logs management-platform --tail=10 fi ''' } } } post { success { echo '✅ Pipeline succeeded — platform deployed' // Optionnel: notification } failure { echo '❌ Pipeline failed — check logs' // Afficher les logs Docker en cas d'échec sh 'docker logs management-platform --tail=30 2>/dev/null || true' } } }