|
|
@ -1,12 +1,16 @@ |
|
|
|
pipeline { |
|
|
|
pipeline { |
|
|
|
agent any |
|
|
|
agent { |
|
|
|
|
|
|
|
docker { |
|
|
|
|
|
|
|
image 'docker:latest' |
|
|
|
|
|
|
|
args '-v /var/run/docker.sock:/var/run/docker.sock' |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
stages { |
|
|
|
stages { |
|
|
|
stage('Build Docker Image') { |
|
|
|
stage('Build Docker Image') { |
|
|
|
steps { |
|
|
|
steps { |
|
|
|
script { |
|
|
|
script { |
|
|
|
def imageName = "python-jenkins-project:${BUILD_NUMBER}" |
|
|
|
def imageName = "python-jenkins-project:${BUILD_NUMBER}" |
|
|
|
sh "DOCKER_BUILDKIT=0 docker build --no-cache -t ${imageName} ." |
|
|
|
docker.build(imageName, '.') |
|
|
|
env.IMAGE_NAME = imageName |
|
|
|
env.IMAGE_NAME = imageName |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -14,18 +18,35 @@ pipeline { |
|
|
|
stage('Deploy Docker Container') { |
|
|
|
stage('Deploy Docker Container') { |
|
|
|
steps { |
|
|
|
steps { |
|
|
|
script { |
|
|
|
script { |
|
|
|
sh "docker stop python-jenkins-container || true" |
|
|
|
sh """ |
|
|
|
sh "docker rm python-jenkins-container || true" |
|
|
|
docker stop python-jenkins-container || true |
|
|
|
sh "docker run -d -p 5555:80 --name python-jenkins-container ${env.IMAGE_NAME}" |
|
|
|
docker rm python-jenkins-container || true |
|
|
|
|
|
|
|
docker run -d -p 5555:80 --name python-jenkins-container ${env.IMAGE_NAME} |
|
|
|
|
|
|
|
""" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
stage('Verify Deployment') { |
|
|
|
stage('Verify Deployment') { |
|
|
|
steps { |
|
|
|
steps { |
|
|
|
script { |
|
|
|
script { |
|
|
|
sh "curl http://38.110.1.139:5555" |
|
|
|
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 |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|