1 changed files with 36 additions and 29 deletions
@ -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 |
||||
""" |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
Loading…
Reference in new issue