Files
portfolio/Jenkinsfile

40 lines
1.3 KiB
Groovy

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 /home/lucas/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 /home/lucas/services/portfolio/docker-compose.yml"
}
}
}
post {
always {
echo "Clean unused image..."
sh "docker image prune -f"
}
success { echo "Success !" }
failure { echo "Failed." }
}
}