You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
pipeline {
|
|
|
|
agent {
|
|
|
|
docker {
|
|
|
|
image 'docker:latest'
|
|
|
|
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
stages {
|
|
|
|
stage('Build Docker Image') {
|
|
|
|
steps {
|
|
|
|
script {
|
|
|
|
def imageName = "python-jenkins-project:${BUILD_NUMBER}"
|
|
|
|
docker.build(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}
|
|
|
|
"""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
stage('Verify Deployment') {
|
|
|
|
steps {
|
|
|
|
script {
|
|
|
|
retry(3) { // Retry up to 3 times
|
|
|
|
sh """
|
|
|
|
curl --fail 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
|
|
|
|
"""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|