forked from ypopovych/readymedia
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
44 lines (44 loc) · 1.45 KB
/
Copy pathJenkinsfile
File metadata and controls
44 lines (44 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
pipeline {
agent {
docker {
image 'docker:24.0.5-dind' // Replace with the latest DinD image if needed
args '--privileged -v /var/lib/docker:/var/lib/docker'
}
}
environment {
DOCKER_CLI_EXPERIMENTAL = 'enabled' // Enables experimental Docker features
DOCKER_BUILDKIT = '1' // Enables BuildKit for multi-platform builds
IMAGE_NAME = 'fkrivsky/readymedia' // Docker image name
DATE_TAG = sh(script: "date +'%Y-%m-%d'", returnStdout: true).trim() // Current date
}
stages {
stage('Setup Build Environment') {
steps {
sh '''
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
'''
}
}
stage('Build and Push Image') {
steps {
sh '''
docker buildx create --use
docker buildx inspect --bootstrap
docker buildx build --push \
--platform linux/arm/v7,linux/arm64,linux/amd64 \
--tag ${IMAGE_NAME}:${DATE_TAG} \
--tag ${IMAGE_NAME}:latest \
.
'''
}
}
}
post {
always {
script {
// Clean up the builder instance to avoid leftover state
sh 'docker buildx rm || true'
}
}
}
}