original jenkinsfile
This commit is contained in:
63
Jenkinsfile
vendored
63
Jenkinsfile
vendored
@@ -1,52 +1,59 @@
|
||||
pipeline {
|
||||
agent {
|
||||
docker {
|
||||
image 'docker:latest'
|
||||
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
||||
}
|
||||
}
|
||||
|
||||
agent any
|
||||
|
||||
stages {
|
||||
|
||||
stage('Build Docker Image') {
|
||||
|
||||
steps {
|
||||
|
||||
script {
|
||||
|
||||
def imageName = "python-jenkins-project:${BUILD_NUMBER}"
|
||||
docker.build(imageName, '.')
|
||||
|
||||
sh "DOCKER_BUILDKIT=0 docker build --no-cache -t ${imageName} ."
|
||||
|
||||
env.IMAGE_NAME = imageName
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
stage('Deploy Docker Container') {
|
||||
|
||||
steps {
|
||||
|
||||
script {
|
||||
sh """
|
||||
docker stop python-jenkins-container || true
|
||||
docker rm python-jenkins-container || true
|
||||
docker run -d -p 5555:80 --name python-jenkins-container ${env.IMAGE_NAME}
|
||||
"""
|
||||
|
||||
sh "docker stop python-jenkins-container || true"
|
||||
|
||||
sh "docker rm python-jenkins-container || true"
|
||||
|
||||
sh "docker run -d -p 5555:80 --name python-jenkins-container ${env.IMAGE_NAME}"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
stage('Verify Deployment') {
|
||||
|
||||
steps {
|
||||
|
||||
script {
|
||||
retry(3) { // Retry up to 3 times
|
||||
sh """
|
||||
curl --fail http://38.110.1.139:5555
|
||||
"""
|
||||
|
||||
sh "curl http://38.110.1.139:5555"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
sh """
|
||||
docker network connect host python-jenkins-container
|
||||
docker exec python-jenkins-container sed -i 's/listen 80 default_server;/listen 80 default_server; server_name python.jacquesingram.online;/' /etc/nginx/conf.d/default.conf
|
||||
docker exec python-jenkins-container nginx -s reload
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user