pipeline { agent any environment { DOCKER_HOST = "unix:///var/run/docker.sock" } stages { stage('Build') { steps { // Get Caddy version sh "cp .env.dist .env" // Push portfolio version sh "echo '\nPORTFOLIO_VERSION=${env.BRANCH_NAME}-${env.BUILD_NUMBER}' >> .env" echo "Building new portfolio version..." sh "docker compose build" } } stage('Deploy') { // Deploy only master branch when { branch 'master' } steps { echo "Deploy new portfolio version..." sh "docker compose up -d" // Update caddy-reverse-proxy cache sh "docker exec caddy-reverse-proxy caddy reload --config /etc/caddy/Caddyfile" // Keep updated docker-compose.yml and Caddyfile for safety sh "cp docker-compose.yml /backup-portfolio/docker-compose.yml" sh "docker cp portfolio:/etc/caddy/Caddyfile /backup-portfolio/Caddyfile" } } } post { always { echo "Clean unused image..." sh "docker image prune -f" } success { echo "Success !" } failure { echo "Failed." } } }