[api] Jenkinsfile.pjt
- 도커 푸시
This commit is contained in:
+35
-6
@@ -27,6 +27,8 @@ pipeline {
|
||||
stages {
|
||||
stage('1) Git check out') {
|
||||
steps {
|
||||
echo "[1/1] Git check out"
|
||||
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
@@ -35,15 +37,21 @@ pipeline {
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
|
||||
echo "[1/1] Gradle build"
|
||||
|
||||
chmod +x ./gradlew
|
||||
./gradlew clean build -x test
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('3) image tab create') {
|
||||
stage('3) ImageTag create') {
|
||||
steps {
|
||||
script {
|
||||
|
||||
echo "[1/1] ImageTag create"
|
||||
|
||||
env.SHORT_SHA = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
||||
echo "SHORT_SHA = ${env.SHORT_SHA}"
|
||||
env.IMAGE_TAG = "${env.BUILD_NUMBER}-${env.SHORT_SHA}"
|
||||
@@ -56,12 +64,15 @@ pipeline {
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
|
||||
echo "[1/1] docker build"
|
||||
|
||||
docker build -t ${REGISTRY_HOST}/${IMAGE_REPO}:${IMAGE_TAG} .
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('5) Docker Login & Push') {
|
||||
stage('5) Docker registry Login & Push') {
|
||||
steps {
|
||||
withCredentials([usernamePassword(
|
||||
credentialsId: DOCKER_CRED,
|
||||
@@ -71,9 +82,11 @@ pipeline {
|
||||
sh '''
|
||||
set -e
|
||||
|
||||
echo "[1/2] docker registry login"
|
||||
echo "$DOCKER_PASS" | docker login ${REGISTRY_HOST} \
|
||||
-u "$DOCKER_USER" --password-stdin
|
||||
|
||||
echo "[2/2] docker image push"
|
||||
docker push ${REGISTRY_HOST}/${IMAGE_REPO}:${IMAGE_TAG}
|
||||
|
||||
docker logout ${REGISTRY_HOST}
|
||||
@@ -87,16 +100,20 @@ pipeline {
|
||||
sshagent(['ssh-pjt']) {
|
||||
sh '''
|
||||
set -e
|
||||
|
||||
echo "[1/2] ssh login"
|
||||
|
||||
SRC="${WORK_COMPOSE_DIR}/${WORK_COMPOSE_FILE}"
|
||||
DST="${SSH_USER}@${SSH_HOST}:${SSH_COMPOSE_DIR}/${SSH_COMPOSE_FILE}"
|
||||
|
||||
echo "[2/2] Copy compose $SRC -> $DST"
|
||||
scp -P ${SSH_PORT} -o StrictHostKeyChecking=no "$SRC" "$DST"
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('7) Remote docker login') {
|
||||
stage('7) Remote docker registry login') {
|
||||
steps {
|
||||
sshagent(['ssh-pjt']) {
|
||||
withCredentials([usernamePassword(
|
||||
@@ -107,6 +124,8 @@ pipeline {
|
||||
sh '''
|
||||
set -e
|
||||
|
||||
echo "[1/1] docker registry login"
|
||||
|
||||
ssh -p ${SSH_PORT} \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o UserKnownHostsFile=/dev/null \
|
||||
@@ -134,14 +153,16 @@ pipeline {
|
||||
'set -e
|
||||
cd '"${SSH_COMPOSE_DIR}"'
|
||||
export IMAGE_TAG='"${IMAGE_TAG}"'
|
||||
docker compose --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' pull
|
||||
|
||||
echo "[1/1] docker pull"
|
||||
docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' pull
|
||||
'
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('9) Remote docker up') {
|
||||
stage('9) Remote docker down & up') {
|
||||
steps {
|
||||
sshagent(['ssh-pjt']) {
|
||||
sh '''
|
||||
@@ -151,7 +172,15 @@ pipeline {
|
||||
'set -e
|
||||
cd '"${SSH_COMPOSE_DIR}"'
|
||||
export IMAGE_TAG='"${IMAGE_TAG}"'
|
||||
docker compose --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' up -d --remove-orphans
|
||||
|
||||
echo "[1/3] docker down (remove orphans)"
|
||||
docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f "'"${SSH_COMPOSE_FILE}"'" down --remove-orphans
|
||||
|
||||
echo "[2/3] docker up"
|
||||
docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' up -d
|
||||
|
||||
echo "[3/3] docker ps"
|
||||
docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' ps
|
||||
'
|
||||
'''
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user