40 lines
1.2 KiB
Groovy
40 lines
1.2 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 ~/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." }
|
|
}
|
|
}
|