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" docker images management-platform:latest --format "Size: {{.Size}}" ''' } } 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 \ -e HOSTNAME=vmi3024229 \ -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 \ 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/ 2>/dev/null; then echo "✅ Platform responding" else echo "⚠️ Health check failed" fi ''' } } } post { success { echo '✅ Pipeline succeeded — platform deployed' } failure { echo '❌ Pipeline failed — check logs' sh 'docker logs management-platform --tail=30 2>/dev/null || true' } } }