1 changed files with 36 additions and 29 deletions
@ -1,52 +1,59 @@ |
|||||||
pipeline { |
pipeline { |
||||||
agent { |
|
||||||
docker { |
agent any |
||||||
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}" |
||||||
docker.build(imageName, '.') |
|
||||||
|
sh "DOCKER_BUILDKIT=0 docker build --no-cache -t ${imageName} ." |
||||||
|
|
||||||
env.IMAGE_NAME = imageName |
env.IMAGE_NAME = imageName |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
stage('Deploy Docker Container') { |
stage('Deploy Docker Container') { |
||||||
|
|
||||||
steps { |
steps { |
||||||
|
|
||||||
script { |
script { |
||||||
sh """ |
|
||||||
docker stop python-jenkins-container || true |
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 rm python-jenkins-container || true" |
||||||
""" |
|
||||||
|
sh "docker run -d -p 5555:80 --name python-jenkins-container ${env.IMAGE_NAME}" |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
} |
} |
||||||
|
|
||||||
stage('Verify Deployment') { |
stage('Verify Deployment') { |
||||||
|
|
||||||
steps { |
steps { |
||||||
|
|
||||||
script { |
script { |
||||||
retry(3) { // Retry up to 3 times |
|
||||||
sh """ |
sh "curl http://38.110.1.139:5555" |
||||||
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 |
|
||||||
""" |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
Loading…
Reference in new issue