pipeline { agent any environment { DOCKER_HOST = "unix:///var/run/docker.sock" } stages { stage('Docker Build') { steps { echo "Build new docker image from ${env.BRANCH_NAME}..." sh "docker build -t portfolio:${env.BRANCH_NAME} ." } } stage('Deploy') { // Deploy only master branch when { branch 'master' } steps { echo "Deploy new portfolio version..." sh "docker compose up -d" // Keep updated docker-compose.yml and Caddyfile for safety sh "docker cp portfolio:/etc/caddy/Caddyfile ~/services/portfolio/Caddyfile" // docker-compose.yml is not allready in image sh "docker exec -i portfolio sh -c 'cat > /tmp/docker-compose.yml' < docker-compose.yml" sh "docker cp portfolio:/tmp/docker-compose.yml ~/services/portfolio/docker-compose.yml" } } } post { always { echo "Clean unused image..." sh "docker image prune -f" } success { echo "Success !" } failure { echo "Failed." } } }