init
This commit is contained in:
88
Jenkinsfile.stage
Normal file
88
Jenkinsfile.stage
Normal file
@@ -0,0 +1,88 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
environment {
|
||||
DOCKER_IMAGE = "caliverse/admintool-front-stage"
|
||||
DOCKER_TAG = "1.0.0"
|
||||
DOCKER_TAG_PRE = "1.0.0"
|
||||
FILE_NAME = 'admintool_front-stage.tar'
|
||||
DOCKER_NAME = 'admintool-front-stage'
|
||||
DOCKER_PORT = '8080'
|
||||
DOCKERFILE_NAME = 'Dockerfile.stage'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Docker Build') {
|
||||
steps {
|
||||
sh 'docker rmi $DOCKER_IMAGE:$DOCKER_TAG_PRE || true' //이전 이미지 삭제
|
||||
sh 'docker build -f $DOCKERFILE_NAME -t $DOCKER_IMAGE:$DOCKER_TAG .' //Dockerfile 기준으로 이미지 생성
|
||||
echo 'Docker Image Create'
|
||||
sh 'docker save -o $FILE_NAME $DOCKER_IMAGE:$DOCKER_TAG' //이미지 .tar 로 생성
|
||||
echo 'Docker Image > .tar File Create'
|
||||
script {
|
||||
def todayDate = sh(script: "date +%Y-%m-%d", returnStdout: true).trim()
|
||||
def fileName = "${FILE_NAME}_${todayDate}.tar"
|
||||
sh "cp ${FILE_NAME} ${fileName}" // 이름 변경
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Transfer Docker Image') {
|
||||
steps {
|
||||
// aws .tar transfer
|
||||
sshPublisher(
|
||||
publishers: [
|
||||
sshPublisherDesc(
|
||||
configName: 'stage-frontend',
|
||||
transfers: [
|
||||
sshTransfer(
|
||||
sourceFiles: "${FILE_NAME}",
|
||||
remoteDirectory: '',
|
||||
execCommand: """
|
||||
echo '.tar Transfer Complete'
|
||||
""",
|
||||
execTimeout: 120000
|
||||
)
|
||||
],
|
||||
usePromotionTimestamp: false,
|
||||
verbose: true
|
||||
)
|
||||
]
|
||||
)
|
||||
}
|
||||
}
|
||||
stage('Deploy to Remote'){
|
||||
steps{
|
||||
// aws command
|
||||
sshPublisher(
|
||||
publishers: [
|
||||
sshPublisherDesc(
|
||||
configName: 'stage-frontend',
|
||||
transfers: [
|
||||
sshTransfer(
|
||||
execCommand: """
|
||||
docker stop ${DOCKER_NAME} || true &&
|
||||
docker rm ${DOCKER_NAME} || true &&
|
||||
docker rmi ${DOCKER_IMAGE}:${DOCKER_TAG_PRE} || true &&
|
||||
docker load -i ${FILE_NAME} &&
|
||||
docker run -d \
|
||||
-p ${DOCKER_PORT}:${DOCKER_PORT} \
|
||||
--name ${DOCKER_NAME} \
|
||||
--restart=always \
|
||||
-v ./admintool/log:/var/log/nginx \
|
||||
-e TZ=\${TZ:-Asia/Seoul} \
|
||||
${DOCKER_IMAGE}:${DOCKER_TAG} &&
|
||||
rm ${FILE_NAME}
|
||||
echo 'Docker Container Create Complete'
|
||||
""",
|
||||
execTimeout: 120000
|
||||
)
|
||||
],
|
||||
usePromotionTimestamp: false,
|
||||
verbose: true
|
||||
)
|
||||
]
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user