[CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ฃ NGINX Server Docker Job (โ‘ข NGINX ์žฌ ์„ค์ •)

2023. 7. 6. 21:11ใ†System ์ž‘์—…์‹ค/DevOps

728x90
๋ฐ˜์‘ํ˜•

 




 

 

 

 

๐Ÿ—‚ ๋ชฉ์ฐจ

โš ๏ธ ์•„๋ž˜ ๋ชฉ์ฐจ ์ค‘ ๋ช‡๋ช‡๊ฐœ์˜ ๋งํฌ๊ฐ€ ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ๋ฌธ์ œ๋กœ ๊ธ€ ๋งจ ํ•˜๋‹จ์— ๋‹ค์Œ ๊ธ€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

โœ… [CI/CD] Jenkins์™€ Gitea ์—ฐ๋™
โœ… [CI/CD] Jenkins Trigger ์ •๋ณด Discord๋กœ ๋ณด๋‚ด๊ธฐ
โœ… [CI/CD] ์ •์  ์ฝ”๋“œ ๋ถ„์„ ํˆด SonarQube์™€ Jenkins ์—ฐ๋™
โœ… [CI/CD] SonarQube๋ฅผ ํ†ตํ•ด Code Convention ์ ์šฉ
โœ… [DevOps] JAVA Gradle JaCoCo (Code coverage) ์„ค์ •ํ•˜๊ธฐ 
โœ… [DevOps] JAVA Gradle JaCoCo (Code coverage) ์„ค์ •ํ•˜๊ธฐ (์ถ”๊ฐ€)(https://junyharang.tistory.com/392)

โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘  Application Linuxt(Ubuntu)์— SSH๋ฅผ ์ด์šฉํ•œ ํŒŒ์ผ ์ „์†ก
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ก Create Docker Image And BackUp
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ข Application Server Docker Job (โ‘  Application ๋„์ปค ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ)
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ข Application Server Docker Job (โ‘ก Application Docker Run)(https://junyharang.tistory.com/406)
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ข Application Server Docker Job (โ‘ข Application Docker Health Check)
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ฃ NGINX Server Docker Job (โ‘  NGINX ๊ฐ ์ข… ์„ค์ •) 
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ฃ NGINX Server Docker Job (โ‘ก NGINX Docker ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ) 
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ฃ NGINX Server Docker Job (โ‘ข NGINX Docker Run & Health Check)
โœ… [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ฃ NGINX Server Docker Job (โ‘ข NGINX ์žฌ ์„ค์ •)



๐Ÿค” ๋‚ด๊ฐ€ ๋งŒ๋‚œ ๋ฌธ์ œ

โ›”๏ธ [Jenkins] java.lang.OutOfMemoryError: Java heap space

 

 

 

 

 

๋ฐฐํฌ ์ž๋™ํ™”์™€ ์ง€์†์  ์ธ๋„:๋„์ปค์™€ ์  ํ‚จ์Šค ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋กœ ๋งŒ๋“œ๋Š”

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

 

๐Ÿš€ NGINX Docker Run

    ๐Ÿ”ฝ ๊ฐœ์š”

        ๐Ÿ“ฆ ๊ตฌ์„ฑ๋„

CI/CD ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ๊ตฌ์„ฑ๋„

 

 

 

 

deploy Directory Path

 

 

 

 

 

 

        ๐Ÿ“ฆ ์†Œ๊ฐœ

์ฃผ๋‹ˆ๊ฐ€ ์ค€๋น„ํ•œ Jenkins, Sonar Qube, Docker, Spring Boot, Nginx์„ ์ด์šฉํ•œ Rolling Deploy ๋ฐฉ์‹ CI/CD ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ •๋ฆฌ๊ฐ€ ๋“œ๋””์–ด ๋งˆ๋ฌด๋ฆฌ ๋‹จ๊ณ„์— ์™”์–ด์š”.

์ด๋ฒˆ์—๋Š” Health Check๊นŒ์ง€ ์ •์ƒ์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ๋œ NGINX Docker Container์— ๊ธฐ๋ณธ ์„ค์ • ๊ฐ’๋“ค์ด ๋“ค์–ด๊ฐ€ ์žˆ์„ํ…๋ฐ, ์ด ๋ถ€๋ถ„์„ ์ด ๊ณณ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ์„ค์ • ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์ž‘์—…์„ ํ•ด ์ฃผ๋ ค๊ณ  ํ•ด์š”.

 

 

 

    ๐Ÿ”ฝ nginxServiceSetting.sh

#!/bin/bash

set -e

NOW=$(date +"%y-%m-%d_%H:%M:%S")
SAVE_LOG_DATE=$(date +"%y-%m-%d")

echo "====================================================================================================="
echo "[$NOW] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Container ์„œ๋น„์Šค ์„ค์ • ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”."
echo "======================================[$NOW] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api Nginx Container ์„œ๋น„์Šค ์„ค์ • ์ž‘์—…======================================"
echo "[$NOW] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)"

HOST_NGINX_CONFIG_DIR="/data/deploy/giggal-total-back-office/deploy/prod/nginx/config"
HOST_NGINX_DEFAULT_CONFIG_PATH_DIR="/data/deploy/giggal-total-back-office/deploy/prod/nginx/config/conf.d"
NGINX_SHELL_SCRIPT_DIRECTORY="/data/deploy/giggal-total-back-office/deploy/prod/nginx/shell-script"
NGINX_CONFIG_DIR="/etc/nginx"
DEFAULT_CONFIG_DIR="/etc/nginx/conf.d"
NGINX_CONTAINER_NAME="nginx-total-back-office"

checkLogDirectory() {
  sleep 5

  LOG_DIR="/var/log/deploy/giggal-total-back-office"

  if [ -d "$LOG_DIR" ];
  then
    echo "=====================================================================================================" >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
    echo "[$NOW] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Blue ์„ค์ • ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
    echo "======================================[$NOW] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api Application ๋ฐฐํฌ======================================" >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
    echo "[$NOW] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)" >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
    echo "[$NOW] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค."
    echo "[$NOW] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  else
      echo "[$NOW] [INFO] cicd-admin์€ mkdir ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์š”. ๊ด€๋ฆฌ์ž ํ˜น์€ DMSO ํฌ๋ฃจ์—๊ฒŒ ${LOG_DIR} ์ƒ์„ฑ์„ ์š”์ฒญํ•ด ์ฃผ์„ธ์š”. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
      exit 1
  fi

  errorPageSetting
}

errorPageSetting() {

  echo "[$NOW] [INFO] ์ž„์˜์˜ Error Page ์‚ฌ์šฉ์„ ์œ„ํ•ด ์„ค์ • ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] ์ž„์˜์˜ Error Page ์‚ฌ์šฉ์„ ์œ„ํ•ด ์„ค์ • ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
  echo "[$NOW] [INFO] ์ตœ์ดˆ Nginx Container ์•ˆ์— error.html File์„ ์ €์žฅํ•  Directory ์ƒ์„ฑ ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] ์ตœ์ดˆ Nginx Container ์•ˆ์— error.html File์„ ์ €์žฅํ•  Directory ์ƒ์„ฑ ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  if ! docker exec $NGINX_CONTAINER_NAME mkdir -p /var/www/html;
  then
    failedCommand "${command}"
  else
    successCommand "${command}"

    echo "[$NOW] [INFO] ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ error.html File Nginx Container /var/www/html ์œ„์น˜์— ๋ณต์‚ฌ ํ• ๊ฒŒ์š”."
    echo "[$NOW] [INFO] ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ error.html File Nginx Container /var/www/html ์œ„์น˜์— ๋ณต์‚ฌ ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

    command="docker cp ${HOST_NGINX_CONFIG_DIR}/error.html $NGINX_CONTAINER_NAME:/var/www/html/error.html"

    if ! docker cp ${HOST_NGINX_CONFIG_DIR}/error.html $NGINX_CONTAINER_NAME:/var/www/html/error.html;
    then
      failedCommand "${command}"
    else
      successCommand "${command}"

      nginxContainerDefaultConfigSetting
    fi
  fi
}

nginxContainerDefaultConfigSetting() {
  echo "[$NOW] [INFO] ๊ธฐ์กด Nginx Container ๊ธฐ๋ณธ default.conf File ๋ณด์•ˆ ์„ค์ • ๋‚ด์šฉ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด ์ œ๊ฑฐ ํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] ๊ธฐ์กด Nginx Container ๊ธฐ๋ณธ default.conf File ๋ณด์•ˆ ์„ค์ • ๋‚ด์šฉ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด ์ œ๊ฑฐ ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  command="docker exec ${NGINX_CONTAINER_NAME} rm -rf /etc/nginx/con.f/default.conf"

  if ! docker exec ${NGINX_CONTAINER_NAME} rm -rf /etc/nginx/con.f/default.conf;
  then
    failedCommand "${command}"
  else
    successCommand "${command}"
  fi

  echo "[$NOW] [INFO] ๋ณด์•ˆ ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ default.conf File ๋ณต์‚ฌ ํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] ๋ณด์•ˆ ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ default.conf File ๋ณต์‚ฌ ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  command="docker cp ${HOST_NGINX_DEFAULT_CONFIG_PATH_DIR}/default.conf $NGINX_CONTAINER_NAME:${DEFAULT_CONFIG_DIR}/default.conf"

  if ! docker cp ${HOST_NGINX_DEFAULT_CONFIG_PATH_DIR}/default.conf $NGINX_CONTAINER_NAME:${DEFAULT_CONFIG_DIR}/default.conf;
  then
    failedCommand "${command}"
  else
    successCommand "${command}"

    nginxContainerNginxConfigSetting
  fi
}

nginxContainerNginxConfigSetting() {
  echo "[$NOW] [INFO] ๊ธฐ์กด Nginx Container ๊ธฐ๋ณธ nginx.conf File ์ œ๊ฑฐ ํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] ๊ธฐ์กด Nginx Container ๊ธฐ๋ณธ nginx.conf File ์ œ๊ฑฐ ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  command="docker exec ${NGINX_CONTAINER_NAME} rm -rf /etc/nginx/nginx.conf"

  if ! docker exec ${NGINX_CONTAINER_NAME} rm -rf /etc/nginx/nginx.conf;
  then
    failedCommand "${command}"
  else
    successCommand "${command}"
  fi

  echo "[$NOW] [INFO] ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ nginx.conf File ๋ณต์‚ฌ ํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ nginx.conf File ๋ณต์‚ฌ ํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  command="docker cp ${HOST_NGINX_CONFIG_DIR}/nginx.conf $NGINX_CONTAINER_NAME:${NGINX_CONFIG_DIR}/nginx.conf"

  if ! docker cp ${HOST_NGINX_CONFIG_DIR}/nginx.conf $NGINX_CONTAINER_NAME:${NGINX_CONFIG_DIR}/nginx.conf;
  then
    failedCommand "${command}"
  else
    successCommand "${command}"
  fi

  echo "[$NOW] [INFO] Application ์ค‘๋‹จ ์—†์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ Nginx ์ ์šฉ ์ž‘์—… ์‹ค์‹œํ• ๊ฒŒ์š”."
  echo "[$NOW] [INFO] Application ์ค‘๋‹จ ์—†์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ Nginx ์ ์šฉ ์ž‘์—… ์‹ค์‹œํ• ๊ฒŒ์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1

  command="docker exec ${NGINX_CONTAINER_NAME} nginx -s reload"

  if ! docker exec ${NGINX_CONTAINER_NAME} nginx -s reload;
  then
    failedCommand "${command}"
  else
    successCommand "${command}"

    $NGINX_SHELL_SCRIPT_DIRECTORY/nginxHealthCheck.sh;
  fi
}

failedCommand() {
  local command=$1

  echo "[$NOW] [ERROR] ${command} ๋ช…๋ น์–ด ์ž‘์—… ์‹คํŒจํ•˜์˜€์–ด์š”. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค."
  echo "[$NOW] [ERROR] ${command} ๋ช…๋ น์–ด ์ž‘์—… ์‹คํŒจํ•˜์˜€์–ด์š”. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
  exit 1
}

successCommand() {
  local command=$1

  echo "[$NOW] [INFO] ${command} ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”."
  echo "[$NOW] [INFO] ${command} ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
}

checkLogDirectory

operationDockerStatus=$(docker ps -a)

echo "[$NOW] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Container ์„œ๋น„์Šค ์ œ ์„ค์ • ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”."
echo "[$NOW] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : ${LOG_DIR}"
echo "[$NOW] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Container ์„œ๋น„์Šค ์ œ ์„ค์ • ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”." >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
echo "[$NOW] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : "
echo "[$NOW] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : " >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
echo "[$NOW] [INFO] ${operationDockerStatus} "
echo "[$NOW] [INFO] ${operationDockerStatus} " >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1
echo -e "=====================================================================================================\n"
echo -e "=====================================================================================================\n" >> $LOG_DIR/"$SAVE_LOG_DATE"-deploy.log 2>&1


NGINX ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์„ค์ •๊ฐ’์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋Š” ์œ„์™€ ๊ฐ™์ด ์ค€๋น„ํ•ด ๋ณด์•˜์–ด์š”.

 

 

 

        ๐Ÿ“ฆ errorPageSetting()

Log๊ฐ€ ์ €์žฅ๋  Directory ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” checkLogDirectory() ๊ฐ€ ์ •์ƒ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด errorPageSetting()์ด ๋™์ž‘ํ•˜๊ฒŒ ๋œ๋‹ต๋‹ˆ๋‹ค.

nginxServiceSetting.sh 42 ~ 69๋ฒˆ์งธ ์ค„


์ตœ์ดˆ 49๋ฒˆ์งธ ์ค„์—์„œ NGINX Docker Container ๋‚ด๋ถ€์— ๋ช…๋ น์–ด๋ฅผ ์ „๋‹ฌํ•ด ์ฃผ๋Š” ๋ช…๋ น์–ด docker exec๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ /var/www/html ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ด ์ฃผ์—ˆ์–ด์š”.

ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ root๊ฐ€ ์•„๋‹Œ cicd-admin์ด๋ผ๋Š” ๊ณ„์ •์œผ๋กœ ์ž‘์—…์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— mkdir ๋“ฑ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‰˜ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ถŒํ•œ ๋ฌธ์ œ๋กœ Error๊ฐ€ ๋‚˜๋Š”๋ฐ,
ํ•ด๋‹น ๋‚ด์šฉ์€ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— root ๊ณ„์ •์œผ๋กœ ๋ช…๋ น์–ด๋ฅผ ์ „๋‹ฌํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์ด์—์š”.

๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋ฉด ๋ฏธ๋ฆฌ ์ค€๋น„ํ•ด ๋‘” error.html์„ ๋ณต์‚ฌํ•˜๊ธฐ ์œ„ํ•ด 60๋ฒˆ์งธ ๋ช…๋ น์–ด ์ฒ˜๋Ÿผ ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„์˜ error.html์ด ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ error.html์„ ์ฐพ์•„ NGINX Container ์ด๋ฆ„์œผ๋กœ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— ๋ณต์‚ฌํ•  ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๊ณ , ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋ณต์‚ฌํ•  ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜์™€ ํŒŒ์ผ ์ด๋ฆ„์„ ์ด์šฉํ•˜์—ฌ docker cp ๋ช…๋ น์–ด๋กœ ๋ณต์‚ฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด ์ฃผ์—ˆ์–ด์š”.

ํ•ด๋‹น ๋ช…๋ น์–ด๊ฐ€ ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๊ฒŒ ๋˜๋ฉด default.conf File์„ ๋ณต์‚ฌํ•˜๊ธฐ ์œ„ํ•œ
nginxContainerDefaultConfigSetting()์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

        ๐Ÿ“ฆ nginxContainerDefaultConfigSetting()

nginxServiceSetting.sh 71 ~ 97๋ฒˆ์งธ ์ค„


ํ•ด๋‹น ํ•จ์ˆ˜์˜ 77๋ฒˆ์งธ ์ค„์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— rm -rf ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๊ธฐ์กด์— ์กด์žฌํ–ˆ๋˜
default.conf File์„ ์‚ญ์ œํ•˜๋„๋ก ํ•ด ์ฃผ์—ˆ์–ด์š”.

๋Ÿฐ ๋’ค 89๋ฒˆ์งธ ์ค„์—์„œ ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” default.conf File์„

๋Œ€์ƒ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก docker cp ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์—ˆ์–ด์š”.

์ด ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‚˜๊ฒŒ ๋˜๋ฉด nginx.conf File์„ ๋ณต์‚ฌํ•˜๊ธฐ ์œ„ํ•œ
nginxContainerNginxConfigSetting()์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

        ๐Ÿ“ฆ nginxContainerNginxConfigSetting()

nginxServiceSetting.sh 99 ~ 137๋ฒˆ์งธ ์ค„

728x90

ํ•ด๋‹น ํ•จ์ˆ˜ 105๋ฒˆ์งธ ์ค„์—์„œ ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” nginx.conf File์„ ์‚ญ์ œํ•˜๊ณ ,
117๋ฒˆ์งธ ์ค„์—์„œ ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„์— ์ €์žฅ๋œ nginx.conf File์„ ์˜ฎ๊ฒจ์ฃผ๋„๋ก ์ž‘์—…ํ•ด ์ฃผ์—ˆ์–ด์š”.

๊ทธ๋Ÿฐ ๋’ค ํ•ด๋‹น Container๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š๊ณ , ์ตœ์‹ ํ™” ๋  ์ˆ˜ ์žˆ๋„๋ก 129๋ฒˆ์งธ ์ค„์—์„œ nginx -s reload ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด

์ƒˆ๋กญ๊ฒŒ ๋“ค์–ด๊ฐ„ ์„ค์ •๊ฐ’๋“ค์ด ์ค‘๋‹จ ์—†์ด ์ตœ์‹ ํ™” ๋˜๋„๋ก ํ•˜์—ฌ ์ฃผ์—ˆ์–ด์š”.

์—ฌ๊ธฐ๊นŒ์ง€ ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค์‹œ Health Check ์ž‘์—…์ด ์ด๋ค„์งˆ ์ˆ˜ ์žˆ๋„๋ก nginxHealthCheck.sh๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๊ณ ,

๋ชจ๋“  ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‚˜๊ฒŒ ๋˜๋ฉด


nginxServiceSetting.sh 156 ~ 166๋ฒˆ์งธ ์ค„


์ด ๊ณณ์œผ๋กœ ์™€์„œ ํ˜„์žฌ ๊ธฐ๋™์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ์ •๋ณด ๋“ฑ์„ ์ถœ๋ ฅ ๋ฐ ๋กœ๊ทธ์— ์ €์žฅํ•˜๊ณ ,
ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ˜ธ์ถœํ–ˆ๋˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋Œ์•„๊ฐ€ ์ž‘์—…์„ ๋งˆ๋ฌด๋ฆฌ ํ•˜๊ฒŒ ๋œ๋‹ต๋‹ˆ๋‹ค.

 

 




 

    ๐Ÿ”ฝ ํ™•์ธ ์ž‘์—…

        ๐Ÿ“ฆ Test

์šด์˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ๋ชจ๋‘ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ์–ด์š”. ๋ฐฐํฌ ๊ด€์ ์—์„œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ฒฝ์šฐ ์œ„ ๋‚ด์šฉ๊ณผ ๋น„์Šทํ•˜๋‚˜, NGINX์™€ Application ๊ตฌ๋™ ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•˜๋Š๋ƒ ์•ˆํ•˜๋Š๋ƒ์— ์ฐจ์ด์™€ NGINX๊ฐ€ ์™ธ๋ถ€์™€ ํ†ต์‹  ๊ฐ€๋Šฅํ•œ NAT ํ™˜๊ฒฝ ์ฆ‰, DMZ Zone์— ์žˆ๋Š”์ง€ ์•„๋‹ˆ๋ฉด ๋‚ด๋ถ€๋ง์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์— ์žˆ๋Š”์ง€ ์ฐจ์ด๋งŒ ์žˆ์–ด์š”.

[Pipeline] { (์šด์˜ ํ™˜๊ฒฝ WAS ์„œ๋ฒ„์— File ์ „๋‹ฌ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ)
[Pipeline] script
[Pipeline] {
[Pipeline] step
SSH: Connecting from host [23565769b6a7]
SSH: Connecting with configuration [op-total-back-office-was] ...
SSH: Creating session: username [cicd-admin], hostname [192.168.20.12], port [9,998]
SSH: Connecting session ...
SSH: Connected
SSH: Opening SFTP channel ...
SSH: SFTP channel open
SSH: Connecting SFTP channel ...
SSH: Connected
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [rm -rf *;] ...
SSH: EXEC: connected
SSH: EXEC: completed after 201 ms
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/was/docker/]
SSH: OK
SSH: cd [build/libs]
SSH: OK
SSH: put [GiggalPeopleBackOffice-0.0.1-SNAPSHOT.jar]
SSH: OK
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/was/docker]
SSH: OK
SSH: put [Dockerfile]
SSH: OK
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/was/shell-script/application]
SSH: OK
SSH: put [applicationContainerExistenceStatusCheck.sh]
SSH: OK
SSH: put [applicationContainerNewRun.sh]
SSH: OK
SSH: put [applicationHealthCheck.sh]
SSH: OK
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/was/shell-script]
SSH: OK
SSH: put [createDockerImageAndBackup.sh]
SSH: OK
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/createDockerImageAndBackup.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/application/applicationContainerExistenceStatusCheck.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/application/applicationContainerNewRun.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/application/applicationHealthCheck.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/nginx/nginxDockerContainerRun.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/nginx/nginxServiceSetting.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/nginx/nginxHealthCheck.sh] ...
SSH: EXEC: connected
SSH: EXEC: completed after 201 ms
SSH: Disconnecting configuration [op-total-back-office-was] ...
SSH: Transferred 6 ( 0 + 1 + 5 ) file(s)
[Pipeline] echo
์šด์˜ ํ™˜๊ฒฝ Application ์„œ๋ฒ„์— File ์ „๋‹ฌ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์“ฐ๊ธฐ ๊ถŒํ•œ ์„ค์ • ์ž‘์—… ์†Œ์š” ์‹œ๊ฐ„ : 2.252 ์ดˆ
[Pipeline] }
[Pipeline] // script
Post stage
[Pipeline] script
[Pipeline] {
[Pipeline] discordSend
Sending notification to Discord.
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (์šด์˜ ํ™˜๊ฒฝ Docker Image ์ƒ์„ฑ ๋ฐ Backup ์ž‘์—…)
[Pipeline] script
[Pipeline] {
[Pipeline] sshPublisher
SSH: Connecting from host [23565769b6a7]
SSH: Connecting with configuration [op-total-back-office-was] ...
SSH: Creating session: username [cicd-admin], hostname [192.168.20.12], port [9,998]
SSH: Connecting session ...
SSH: Connected
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [/data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/createDockerImageAndBackup.sh] ...
SSH: EXEC: connected
[23-07-06_15:37:04] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ๋„์ปค ๋ฐฑ์—… ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_15:37:04] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ๋„์ปค ๋ฐฑ์—…======================================
[23-07-06_15:37:04] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_15:37:04] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_15:37:04] [INFO] ์ด๋ฆ„ ์—†๋Š” (๊ณ ์•„) Docker Image ์‚ญ์ œ ์ž‘์—… ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_15:37:04] [INFO] ํ˜„์žฌ ์กด์žฌํ•˜๋Š” Docker Image ๋‚ด์—ญ : 
[23-07-06_15:37:04] [INFO] REPOSITORY                            TAG       IMAGE ID       CREATED             SIZE
giggal-people/total-back-office-api   latest    48158841af86   19 minutes ago      712MB
<none>                                <none>    e52dcee00cf8   About an hour ago   712MB
openjdk                               11        47a932d998b7   11 months ago       654MB 
<none>                                <none>    e52dcee00cf8   About an hour ago   712MB
Deleted: sha256:e52dcee00cf8887b56ba675965ae39dc1fea9c57eaccc28056bdba1a79e39140
Deleted: sha256:bd3022e2f8c4216a5e4b4332bb75070e09b94558be19b8625a09126e8532a09d
Deleted: sha256:d3c2ecf5348f26cfa03d8e5492899dda2f18283aac70a259654538ade223f847
Deleted: sha256:01ab7e8b784dbdca7f3d1dac62b697b67306337e4234ae64f392264a6aae5dbd
Deleted: sha256:9e1b9c745d886e6149c1d91edc6c37f3f4840996664878b4cb7af3d57c8013f2
Deleted: sha256:42f80d8081299812e3ce663d57456708901240aad3d96228341d0b5e3fd86605
[23-07-06_15:37:04] [INFO] ์ด๋ฆ„ ์—†๋Š” Docker Image ์‚ญ์ œ ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:37:04] [INFO] ํ˜„์žฌ ์กด์žฌํ•˜๋Š” Docker Image ๋‚ด์—ญ : 
[23-07-06_15:37:04] [INFO] REPOSITORY                            TAG       IMAGE ID       CREATED          SIZE
giggal-people/total-back-office-api   latest    48158841af86   19 minutes ago   712MB
openjdk                               11        47a932d998b7   11 months ago    654MB 
[23-07-06_15:37:04] [INFO] Docker Image ์ƒ์„ฑ ์ž‘์—…์„ ์œ„ํ•ด docker Image ์ด๋ฆ„์— ๋Œ€ํ•œ ๋ณ€์ˆ˜ ์„ค์ • ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_15:37:04] [INFO] giggal-people/total-back-office-api Docker Image ์ƒ์„ฑ ์ž‘์—… ์‹œ์ž‘ํ• ๊ฒŒ์š”.
Sending build context to Docker daemon   57.5MB

Step 1/9 : FROM openjdk:11
 ---> 47a932d998b7
Step 2/9 : MAINTAINER ์ฃผ๋‹ˆ <junyharang8592@gmail.com>
 ---> Using cache
 ---> 04fc51c0bc9e
Step 3/9 : ARG JAR_FILE=./build/libs/*.jar
 ---> Using cache
 ---> 918c11934d73
Step 4/9 : RUN mkdir -p /app
 ---> Using cache
 ---> 98ec9a6f9800
Step 5/9 : WORKDIR /app
 ---> Using cache
 ---> 43b98153aa00
Step 6/9 : COPY ${JAR_FILE} /app/application.jar
 ---> c7d9acd01bb1
Step 7/9 : ENV TZ=Asia/Seoul
 ---> Running in abb475aa4ff8
Removing intermediate container abb475aa4ff8
 ---> 044ab2aa32b6
Step 8/9 : RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 ---> Running in ae46d6934e65
Removing intermediate container ae46d6934e65
 ---> 432d9ca92087
Step 9/9 : ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "/app/application.jar", "-Djava.net.preferIPv4Stack=true", "-Duser.timezone=Asia/Seoul"]
 ---> Running in 690ff4099c43
Removing intermediate container 690ff4099c43
 ---> 83efea94d982
Successfully built 83efea94d982
Successfully tagged giggal-people/total-back-office-api:latest
giggal-people/total-back-office-api   latest    83efea94d982   1 second ago     712MB
[23-07-06_15:37:04] [INFO] giggal-people/total-back-office-api Docker Image ์ƒ์„ฑ ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:37:04] [INFO] giggal-people/total-back-office-api Docker Image Back Up ์ž‘์—… ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_15:37:04] [INFO] Docker Backup Directory ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณผ๊ฒŒ์š”.
total 2119308
drwxr-xr-x 2 cicd-admin cicd-admin       153 Jul  6 15:18 .
drwxr-xr-x 3 cicd-admin cicd-admin        25 Jul  3 15:42 ..
-rw------- 1 cicd-admin cicd-admin 723386880 Jul  4 20:43 23-07-04-giggal-total-back-office-api.tar
-rw------- 1 cicd-admin cicd-admin 723386880 Jul  5 23:51 23-07-05-giggal-total-back-office-api.tar
-rw------- 1 cicd-admin cicd-admin 723386880 Jul  6 15:18 23-07-06-giggal-total-back-office-api.tar
[23-07-06_15:37:04] [INFO] Docker Backup Directory /data/deploy/giggal-total-back-office/deploy/prod/backup/application ๊ฐ€ ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_15:37:04] [INFO] giggal-people/total-back-office-api Docker Image ๋ฐฑ์—… ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:37:04] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ๋„์ปค ๋ฐฑ์—… LOG ์œ„์น˜ : /var/log/docker/giggal-total-back-office/api
[23-07-06_15:37:04] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ฐ ๋„์ปค ๋ฐฑ์—… ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
=====================================================================================================

SSH: EXEC: completed after 84,470 ms
SSH: Disconnecting configuration [op-total-back-office-was] ...
SSH: Transferred 0 file(s)
[Pipeline] echo
์šด์˜ ํ™˜๊ฒฝ Docker Image ์ƒ์„ฑ ๋ฐ Backup ์ž‘์—… ์†Œ์š” ์‹œ๊ฐ„ : 85.01 ์ดˆ
[Pipeline] }
[Pipeline] // script
Post stage
[Pipeline] script
[Pipeline] {
[Pipeline] discordSend
Sending notification to Discord.
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (์šด์˜ ํ™˜๊ฒฝ Application Docker ๊ด€๋ จ ์ž‘์—…)
[Pipeline] script
[Pipeline] {
[Pipeline] sshPublisher
SSH: Connecting from host [23565769b6a7]
SSH: Connecting with configuration [op-total-back-office-was] ...
SSH: Creating session: username [cicd-admin], hostname [192.168.20.12], port [9,998]
SSH: Connecting session ...
SSH: Connected
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [/data/deploy/giggal-total-back-office/deploy/prod/was/shell-script/application/applicationContainerExistenceStatusCheck.sh] ...
SSH: EXEC: connected
[23-07-06_15:38:32] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Application Docker Container ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_15:38:32] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api Application Docker Container ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ======================================
[23-07-06_15:38:32] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_15:38:32] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_15:38:32] [INFO] Application ์ปจํ…Œ์ด๋„ˆ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:38:32] [INFO] MAIN ํ™˜๊ฒฝ ๊ธฐ์ค€ ์ปจํ…Œ์ด๋„ˆ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:38:32] [INFO] SUB ํ™˜๊ฒฝ ๊ธฐ์ค€ ์ปจํ…Œ์ด๋„ˆ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:38:32] [INFO] giggal-total-back-office-api-main, giggal-total-back-office-api-sub ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
=====================================================================================================
[23-07-06_15:38:37] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ ์ƒˆ๋กœ์šด Application Docker Container ๊ธฐ๋™ ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_15:38:37] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค ์„œ๋ฒ„ ๋ฐฐํฌ======================================
[23-07-06_15:38:37] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_15:38:37] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด Docker Container ์ค‘์ง€ ๋ฐ ์‚ญ์ œ ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] 1 ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์ด ์‹œ์ž‘๋˜์—ˆ์–ด์š”. Sub์˜ ๊ธฐ์กด Docker Container ํฌํ•จํ•œ ์ค‘์ง€ ๋ฐ ์‚ญ์ œ ๋ช…๋ น์–ด์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ํ†ตํ•ด docker ๊ธฐ๋™ ๋ช…๋ น์–ด ๋ณ€์ˆ˜ ์ •๋ณด : 
[23-07-06_15:38:37] [INFO] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ๋ฐ Host Name : giggal-total-back-office-api-sub 
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-sub ์ปจํ…Œ์ด๋„ˆ Port Number : 1011 
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-sub ์ปจํ…Œ์ด๋„ˆ Docker Image Name : giggal-people/total-back-office-api 
[23-07-06_15:38:37] [INFO] ์ข…๋ฃŒ ๋ฐ ์ œ๊ฑฐํ•  ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ : giggal-total-back-office-api-sub 
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-sub ์ปจํ…Œ์ด๋„ˆ ID : 25bcd3a28fd6 
giggal-total-back-office-api-sub
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด ๋™์ž‘ ์ค‘์ด๋˜ Container ์ด๋ฆ„: giggal-total-back-office-api-sub, Container ID: 25bcd3a28fd6 ์ข…๋ฃŒ ์ž‘์—… ์„ฑ๊ณต ํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด ๋™์ž‘ ์ค‘์ด๋˜ Container ์ด๋ฆ„: giggal-total-back-office-api-sub, Container ID: 25bcd3a28fd6 ์‚ญ์ œ ์ž‘์—… ์ง„ํ–‰ํ• ๊ฒŒ์š”.
giggal-total-back-office-api-sub
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด ๋™์ž‘ ์ค‘์ด๋˜ Container ์ด๋ฆ„: giggal-total-back-office-api-sub, Container ID: 25bcd3a28fd6 ์‚ญ์ œ ์ž‘์—… ์„ฑ๊ณต ํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-sub ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ํ†ตํ•ด docker ๊ธฐ๋™ ๋ช…๋ น์–ด ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] ์„ค์ •๋œ ๋ณ€์ˆ˜ ์ •๋ณด: 
[23-07-06_15:38:37] [INFO] Container Name And Container Host Name : giggal-total-back-office-api-sub 
[23-07-06_15:38:37] [INFO] Container Port Number : 1011 
264e5299a899e7891871bfec08e17364c5b2efe7f3a48f0bc691e82516af8b8b
[23-07-06_15:38:37] [INFO] docker run -itd --privileged --name giggal-total-back-office-api-sub --hostname giggal-total-back-office-api-sub -e container=docker -p 1011:8080 --restart unless-stopped giggal-people/total-back-office-api ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] Container ID : 264e5299a899 
[23-07-06_15:38:37] [INFO] ๊ธฐ๋™ ์‹œํ‚จ Container giggal-total-back-office-api-sub (ID: 264e5299a899) ๋™์ž‘ ์ƒํƒœ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] ๊ธฐ๋™ ์‹œํ‚จ Container ๋‚ด๋ถ€ Log ์ •๋ณด : 
[23-07-06_15:38:37] [INFO]  
 .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------..----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------.
| .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. |
| |    ______    | | |     _____    | | |    ______    | | |    ______    | | |      __      | | |   _____      | | |   ______     | | |  _________   | | |     ____     | | |   ______     | | |   _____      | | |  _________   | | |              | | |   ______     | | |      __      | | |     ______   | | |  ___  ____   | | |     ____     | | |  _________   | | |  _________   | | |     _____    | | |     ______   | | |  _________   | | |              | | |   ______     | | |      __      | | |     ______   | | |  ___  ____   | | |  _________   | | | ____  _____  | | |  ________    | | |              | | |   ______     | | |  _______     | | |     ____     | | |     _____    | | |  _________   | | |     ______   | | |  _________   | |
| |  .' ___  |   | | |    |_   _|   | | |  .' ___  |   | | |  .' ___  |   | | |     /  \     | | |  |_   _|     | | |  |_   __ \   | | | |_   ___  |  | | |   .'    `.   | | |  |_   __ \   | | |  |_   _|     | | | |_   ___  |  | | |              | | |  |_   _ \    | | |     /  \     | | |   .' ___  |  | | | |_  ||_  _|  | | |   .'    `.   | | | |_   ___  |  | | | |_   ___  |  | | |    |_   _|   | | |   .' ___  |  | | | |_   ___  |  | | |              | | |  |_   _ \    | | |     /  \     | | |   .' ___  |  | | | |_  ||_  _|  | | | |_   ___  |  | | ||_   \|_   _| | | | |_   ___ `.  | | |              | | |  |_   __ \   | | | |_   __ \    | | |   .'    `.   | | |    |_   _|   | | | |_   ___  |  | | |   .' ___  |  | | | |  _   _  |  | |
| | / .'   \_|   | | |      | |     | | | / .'   \_|   | | | / .'   \_|   | | |    / /\ \    | | |    | |       | | |    | |__) |  | | |   | |_  \_|  | | |  /  .--.  \  | | |    | |__) |  | | |    | |       | | |   | |_  \_|  | | |              | | |    | |_) |   | | |    / /\ \    | | |  / .'   \_|  | | |   | |_/ /    | | |  /  .--.  \  | | |   | |_  \_|  | | |   | |_  \_|  | | |      | |     | | |  / .'   \_|  | | |   | |_  \_|  | | |              | | |    | |_) |   | | |    / /\ \    | | |  / .'   \_|  | | |   | |_/ /    | | |   | |_  \_|  | | |  |   \ | |   | | |   | |   `. \ | | |              | | |    | |__) |  | | |   | |__) |   | | |  /  .--.  \  | | |      | |     | | |   | |_  \_|  | | |  / .'   \_|  | | | |_/ | | \_|  | |
| | | |    ____  | | |      | |     | | | | |    ____  | | | | |    ____  | | |   / ____ \   | | |    | |   _   | | |    |  ___/   | | |   |  _|  _   | | |  | |    | |  | | |    |  ___/   | | |    | |   _   | | |   |  _|  _   | | |              | | |    |  __'.   | | |   / ____ \   | | |  | |         | | |   |  __'.    | | |  | |    | |  | | |   |  _|      | | |   |  _|      | | |      | |     | | |  | |         | | |   |  _|  _   | | |              | | |    |  __'.   | | |   / ____ \   | | |  | |         | | |   |  __'.    | | |   |  _|  _   | | |  | |\ \| |   | | |   | |    | | | | |              | | |    |  ___/   | | |   |  __ /    | | |  | |    | |  | | |   _  | |     | | |   |  _|  _   | | |  | |         | | |     | |      | |
| | \ `.___]  _| | | |     _| |_    | | | \ `.___]  _| | | | \ `.___]  _| | | | _/ /    \ \_ | | |   _| |__/ |  | | |   _| |_      | | |  _| |___/ |  | | |  \  `--'  /  | | |   _| |_      | | |   _| |__/ |  | | |  _| |___/ |  | | |              | | |   _| |__) |  | | | _/ /    \ \_ | | |  \ `.___.'\  | | |  _| |  \ \_  | | |  \  `--'  /  | | |  _| |_       | | |  _| |_       | | |     _| |_    | | |  \ `.___.'\  | | |  _| |___/ |  | | |              | | |   _| |__) |  | | | _/ /    \ \_ | | |  \ `.___.'\  | | |  _| |  \ \_  | | |  _| |___/ |  | | | _| |_\   |_  | | |  _| |___.' / | | |              | | |   _| |_      | | |  _| |  \ \_  | | |  \  `--'  /  | | |  | |_' |     | | |  _| |___/ |  | | |  \ `.___.'\  | | |    _| |_     | |
| |  `._____.'   | | |    |_____|   | | |  `._____.'   | | |  `._____.'   | | ||____|  |____|| | |  |________|  | | |  |_____|     | | | |_________|  | | |   `.____.'   | | |  |_____|     | | |  |________|  | | | |_________|  | | |   _______    | | |  |_______/   | | ||____|  |____|| | |   `._____.'  | | | |____||____| | | |   `.____.'   | | | |_____|      | | | |_____|      | | |    |_____|   | | |   `._____.'  | | | |_________|  | | |   _______    | | |  |_______/   | | ||____|  |____|| | |   `._____.'  | | | |____||____| | | | |_________|  | | ||_____|\____| | | | |________.'  | | |   _______    | | |  |_____|     | | | |____| |___| | | |   `.____.'   | | |  `.___.'     | | | |_________|  | | |   `._____.'  | | |   |_____|    | |
| |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |  |_______|   | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |  |_______|   | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |  |_______|   | | |              | | |              | | |              | | |              | | |              | | |              | | |              | |
| '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' |
 '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------'

 
Powered by Spring Boot 2.7.7

[23-07-06_15:38:37] [INFO] docker ps --filter id=264e5299a899 --format {{.Status}}  ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] 2 ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์ด ์‹œ์ž‘๋˜์—ˆ์–ด์š”. Main์˜ ๊ธฐ์กด Docker Container ํฌํ•จํ•œ ์ค‘์ง€ ๋ฐ ์‚ญ์ œ ๋ช…๋ น์–ด์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ํ†ตํ•ด docker ๊ธฐ๋™ ๋ช…๋ น์–ด ๋ณ€์ˆ˜ ์ •๋ณด : 
[23-07-06_15:38:37] [INFO] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ๋ฐ Host Name : giggal-total-back-office-api-main 
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-main ์ปจํ…Œ์ด๋„ˆ Port Number : 1001 
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-main ์ปจํ…Œ์ด๋„ˆ Docker Image Name : giggal-people/total-back-office-api 
[23-07-06_15:38:37] [INFO] ์ข…๋ฃŒ ๋ฐ ์ œ๊ฑฐํ•  ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ : giggal-total-back-office-api-main 
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-main ์ปจํ…Œ์ด๋„ˆ ID : 2649f9891d74 
giggal-total-back-office-api-main
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด ๋™์ž‘ ์ค‘์ด๋˜ Container ์ด๋ฆ„: giggal-total-back-office-api-main, Container ID: 2649f9891d74 ์ข…๋ฃŒ ์ž‘์—… ์„ฑ๊ณต ํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด ๋™์ž‘ ์ค‘์ด๋˜ Container ์ด๋ฆ„: giggal-total-back-office-api-main, Container ID: 2649f9891d74 ์‚ญ์ œ ์ž‘์—… ์ง„ํ–‰ํ• ๊ฒŒ์š”.
giggal-total-back-office-api-main
[23-07-06_15:38:37] [INFO] ๊ธฐ์กด ๋™์ž‘ ์ค‘์ด๋˜ Container ์ด๋ฆ„: giggal-total-back-office-api-main, Container ID: 2649f9891d74 ์‚ญ์ œ ์ž‘์—… ์„ฑ๊ณต ํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] giggal-total-back-office-api-main ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ํ†ตํ•ด docker ๊ธฐ๋™ ๋ช…๋ น์–ด ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] ์„ค์ •๋œ ๋ณ€์ˆ˜ ์ •๋ณด: 
[23-07-06_15:38:37] [INFO] Container Name And Container Host Name : giggal-total-back-office-api-main 
[23-07-06_15:38:37] [INFO] Container Port Number : 1001 
3447d38c72aa3f607344b30ef50f881d53560d0ba75ef995ebcbf959a9087da1
[23-07-06_15:38:37] [INFO] docker run -itd --privileged --name giggal-total-back-office-api-main --hostname giggal-total-back-office-api-main -e container=docker -p 1001:8080 --restart unless-stopped giggal-people/total-back-office-api ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] Container ID : 3447d38c72aa 
[23-07-06_15:38:37] [INFO] ๊ธฐ๋™ ์‹œํ‚จ Container giggal-total-back-office-api-main (ID: 3447d38c72aa) ๋™์ž‘ ์ƒํƒœ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:38:37] [INFO] ๊ธฐ๋™ ์‹œํ‚จ Container ๋‚ด๋ถ€ Log ์ •๋ณด : 
[23-07-06_15:38:37] [INFO]  
 .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------..----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------.
| .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. |
| |    ______    | | |     _____    | | |    ______    | | |    ______    | | |      __      | | |   _____      | | |   ______     | | |  _________   | | |     ____     | | |   ______     | | |   _____      | | |  _________   | | |              | | |   ______     | | |      __      | | |     ______   | | |  ___  ____   | | |     ____     | | |  _________   | | |  _________   | | |     _____    | | |     ______   | | |  _________   | | |              | | |   ______     | | |      __      | | |     ______   | | |  ___  ____   | | |  _________   | | | ____  _____  | | |  ________    | | |              | | |   ______     | | |  _______     | | |     ____     | | |     _____    | | |  _________   | | |     ______   | | |  _________   | |
| |  .' ___  |   | | |    |_   _|   | | |  .' ___  |   | | |  .' ___  |   | | |     /  \     | | |  |_   _|     | | |  |_   __ \   | | | |_   ___  |  | | |   .'    `.   | | |  |_   __ \   | | |  |_   _|     | | | |_   ___  |  | | |              | | |  |_   _ \    | | |     /  \     | | |   .' ___  |  | | | |_  ||_  _|  | | |   .'    `.   | | | |_   ___  |  | | | |_   ___  |  | | |    |_   _|   | | |   .' ___  |  | | | |_   ___  |  | | |              | | |  |_   _ \    | | |     /  \     | | |   .' ___  |  | | | |_  ||_  _|  | | | |_   ___  |  | | ||_   \|_   _| | | | |_   ___ `.  | | |              | | |  |_   __ \   | | | |_   __ \    | | |   .'    `.   | | |    |_   _|   | | | |_   ___  |  | | |   .' ___  |  | | | |  _   _  |  | |
| | / .'   \_|   | | |      | |     | | | / .'   \_|   | | | / .'   \_|   | | |    / /\ \    | | |    | |       | | |    | |__) |  | | |   | |_  \_|  | | |  /  .--.  \  | | |    | |__) |  | | |    | |       | | |   | |_  \_|  | | |              | | |    | |_) |   | | |    / /\ \    | | |  / .'   \_|  | | |   | |_/ /    | | |  /  .--.  \  | | |   | |_  \_|  | | |   | |_  \_|  | | |      | |     | | |  / .'   \_|  | | |   | |_  \_|  | | |              | | |    | |_) |   | | |    / /\ \    | | |  / .'   \_|  | | |   | |_/ /    | | |   | |_  \_|  | | |  |   \ | |   | | |   | |   `. \ | | |              | | |    | |__) |  | | |   | |__) |   | | |  /  .--.  \  | | |      | |     | | |   | |_  \_|  | | |  / .'   \_|  | | | |_/ | | \_|  | |
| | | |    ____  | | |      | |     | | | | |    ____  | | | | |    ____  | | |   / ____ \   | | |    | |   _   | | |    |  ___/   | | |   |  _|  _   | | |  | |    | |  | | |    |  ___/   | | |    | |   _   | | |   |  _|  _   | | |              | | |    |  __'.   | | |   / ____ \   | | |  | |         | | |   |  __'.    | | |  | |    | |  | | |   |  _|      | | |   |  _|      | | |      | |     | | |  | |         | | |   |  _|  _   | | |              | | |    |  __'.   | | |   / ____ \   | | |  | |         | | |   |  __'.    | | |   |  _|  _   | | |  | |\ \| |   | | |   | |    | | | | |              | | |    |  ___/   | | |   |  __ /    | | |  | |    | |  | | |   _  | |     | | |   |  _|  _   | | |  | |         | | |     | |      | |
| | \ `.___]  _| | | |     _| |_    | | | \ `.___]  _| | | | \ `.___]  _| | | | _/ /    \ \_ | | |   _| |__/ |  | | |   _| |_      | | |  _| |___/ |  | | |  \  `--'  /  | | |   _| |_      | | |   _| |__/ |  | | |  _| |___/ |  | | |              | | |   _| |__) |  | | | _/ /    \ \_ | | |  \ `.___.'\  | | |  _| |  \ \_  | | |  \  `--'  /  | | |  _| |_       | | |  _| |_       | | |     _| |_    | | |  \ `.___.'\  | | |  _| |___/ |  | | |              | | |   _| |__) |  | | | _/ /    \ \_ | | |  \ `.___.'\  | | |  _| |  \ \_  | | |  _| |___/ |  | | | _| |_\   |_  | | |  _| |___.' / | | |              | | |   _| |_      | | |  _| |  \ \_  | | |  \  `--'  /  | | |  | |_' |     | | |  _| |___/ |  | | |  \ `.___.'\  | | |    _| |_     | |
| |  `._____.'   | | |    |_____|   | | |  `._____.'   | | |  `._____.'   | | ||____|  |____|| | |  |________|  | | |  |_____|     | | | |_________|  | | |   `.____.'   | | |  |_____|     | | |  |________|  | | | |_________|  | | |   _______    | | |  |_______/   | | ||____|  |____|| | |   `._____.'  | | | |____||____| | | |   `.____.'   | | | |_____|      | | | |_____|      | | |    |_____|   | | |   `._____.'  | | | |_________|  | | |   _______    | | |  |_______/   | | ||____|  |____|| | |   `._____.'  | | | |____||____| | | | |_________|  | | ||_____|\____| | | | |________.'  | | |   _______    | | |  |_____|     | | | |____| |___| | | |   `.____.'   | | |  `.___.'     | | | |_________|  | | |   `._____.'  | | |   |_____|    | |
| |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |  |_______|   | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |  |_______|   | | |              | | |              | | |              | | |              | | |              | | |              | | |              | | |  |_______|   | | |              | | |              | | |              | | |              | | |              | | |              | | |              | |
| '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' | '--------------' |
 '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------'

 
Powered by Spring Boot 2.7.7

[23-07-06_15:38:37] [INFO] docker ps --filter id=3447d38c72aa --format {{.Status}}  ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:38:37] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ ์ƒˆ๋กœ์šด Application Docker Container ๊ธฐ๋™ ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_15:38:37] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_15:38:37] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_15:38:37] [INFO] CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                       NAMES
3447d38c72aa   giggal-people/total-back-office-api   "java -jar -Dspring.…"   7 seconds ago    Up 5 seconds    0.0.0.0:1001->8080/tcp, :::1001->8080/tcp   giggal-total-back-office-api-main
264e5299a899   giggal-people/total-back-office-api   "java -jar -Dspring.…"   26 seconds ago   Up 24 seconds   0.0.0.0:1011->8080/tcp, :::1011->8080/tcp   giggal-total-back-office-api-sub 
=====================================================================================================

=====================================================================================================
[23-07-06_15:39:17] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Application Health Check ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_15:39:17] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api Application Health Check======================================
[23-07-06_15:39:17] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_15:39:17] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_15:39:17] [INFO] Application Container ๊ธฐ๋™ ์ƒํƒœ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:39:17] [INFO] Application Container MAIN ๊ธฐ๋™ ์ƒํƒœ ์ •๋ณด : Up 15 seconds
[23-07-06_15:39:17] [INFO] Application Container SUB ๊ธฐ๋™ ์ƒํƒœ ์ •๋ณด : Up 34 seconds
[23-07-06_15:39:17] [INFO] 1 ๋ฒˆ์งธ Application Container ๊ธฐ๋™ ์ƒํƒœ ํ™•์ธ
[23-07-06_15:39:17] [INFO] Application Container MAIN PORT ๋ฒˆํ˜ธ : 1001
[23-07-06_15:39:17] [INFO] Application Container SUB PORT ๋ฒˆํ˜ธ : 1011
[23-07-06_15:39:17] [INFO] 1 ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด Application Container MAIN ๊ธฐ๋™ ์ƒํƒœ๊ฐ€ ์ •์ƒ์ž„์„ ํ™•์ธํ•˜์˜€์–ด์š”.
[23-07-06_15:39:17] [INFO] giggal-total-back-office-api-sub Health Check ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_15:39:17] [INFO] ์‚ฌ์šฉ ๋ช…๋ น์–ด: curl -I http://192.168.20.12:1011/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' 
[23-07-06_15:39:17] [INFO] 1 ๋ฒˆ์งธ ๋ฐ http ์ •์ƒ ์—ฐ๊ฒฐ ํ™•์ธ 1 ๋ฒˆ์งธ Health Check ์ž‘์—… ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_15:39:17] [INFO] curl -I http://192.168.20.12:1011/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_15:39:17] [INFO] giggal-total-back-office-api-sub Container ์ƒํƒœ๊ฐ€ ์ •์ƒ์ด์—์š”.
[23-07-06_15:39:17] [INFO] curl -I http://192.168.20.12:1011/api/test/profile | grep HTTP | wc -l ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:39:17] [INFO] Application Container ๊ธฐ๋™ ์ƒํƒœ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_15:39:17] [INFO] Application Container MAIN ๊ธฐ๋™ ์ƒํƒœ ์ •๋ณด : Up 21 seconds
[23-07-06_15:39:17] [INFO] Application Container SUB ๊ธฐ๋™ ์ƒํƒœ ์ •๋ณด : Up 40 seconds
[23-07-06_15:39:17] [INFO] 2 ๋ฒˆ์งธ Application Container ๊ธฐ๋™ ์ƒํƒœ ํ™•์ธ
[23-07-06_15:39:17] [INFO] Application Container MAIN PORT ๋ฒˆํ˜ธ : 1001
[23-07-06_15:39:17] [INFO] Application Container SUB PORT ๋ฒˆํ˜ธ : 1011
[23-07-06_15:39:17] [INFO] 2 ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด Application Container SUB ๊ธฐ๋™ ์ƒํƒœ๊ฐ€ ์ •์ƒ์ž„์„ ํ™•์ธํ•˜์˜€์–ด์š”.
[23-07-06_15:39:17] [INFO] giggal-total-back-office-api-main Health Check ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_15:39:17] [INFO] ์‚ฌ์šฉ ๋ช…๋ น์–ด: curl -I http://192.168.20.12:1001/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' 
[23-07-06_15:39:17] [INFO] 2 ๋ฒˆ์งธ ๋ฐ http ์ •์ƒ ์—ฐ๊ฒฐ ํ™•์ธ 1 ๋ฒˆ์งธ Health Check ์ž‘์—… ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_15:39:17] [INFO] curl -I http://192.168.20.12:1001/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_15:39:17] [INFO] giggal-total-back-office-api-main Container ์ƒํƒœ๊ฐ€ ์ •์ƒ์ด์—์š”.
[23-07-06_15:39:17] [INFO] curl -I http://192.168.20.12:1001/api/test/profile | grep HTTP | wc -l ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_15:39:17] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ž‘์—… ์ค‘ Application Health Check ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_15:39:17] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_15:39:17] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_15:39:17] [INFO] CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                       NAMES
3447d38c72aa   giggal-people/total-back-office-api   "java -jar -Dspring.…"   29 seconds ago   Up 27 seconds   0.0.0.0:1001->8080/tcp, :::1001->8080/tcp   giggal-total-back-office-api-main
264e5299a899   giggal-people/total-back-office-api   "java -jar -Dspring.…"   48 seconds ago   Up 46 seconds   0.0.0.0:1011->8080/tcp, :::1011->8080/tcp   giggal-total-back-office-api-sub 
=====================================================================================================

[23-07-06_15:38:32] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ž‘์—… ์ค‘ Application Docker Container ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_15:38:32] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_15:38:32] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_15:38:32] [INFO] CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                       NAMES
3447d38c72aa   giggal-people/total-back-office-api   "java -jar -Dspring.…"   30 seconds ago   Up 27 seconds   0.0.0.0:1001->8080/tcp, :::1001->8080/tcp   giggal-total-back-office-api-main
264e5299a899   giggal-people/total-back-office-api   "java -jar -Dspring.…"   49 seconds ago   Up 46 seconds   0.0.0.0:1011->8080/tcp, :::1011->8080/tcp   giggal-total-back-office-api-sub 
=====================================================================================================

SSH: EXEC: completed after 67,464 ms
SSH: Disconnecting configuration [op-total-back-office-was] ...
SSH: Transferred 0 file(s)
[Pipeline] echo
์šด์˜ ํ™˜๊ฒฝ Application Docker ๊ด€๋ จ ์ž‘์—… ์†Œ์š” ์‹œ๊ฐ„ : 68.048 ์ดˆ
[Pipeline] }
[Pipeline] // script
Post stage
[Pipeline] script
[Pipeline] {
[Pipeline] discordSend
Sending notification to Discord.
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (์šด์˜ ํ™˜๊ฒฝ DMZ ์„œ๋ฒ„ NGINX ๊ด€๋ จ File ์ „๋‹ฌ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ)
[Pipeline] script
[Pipeline] {
[Pipeline] sshPublisher
SSH: Connecting from host [23565769b6a7]
SSH: Connecting with configuration [op-total-back-office-nginx] ...
SSH: Creating session: username [cicd-admin], hostname [192.168.30.3], port [9,998]
SSH: Connecting session ...
SSH: Connected
SSH: Opening SFTP channel ...
SSH: SFTP channel open
SSH: Connecting SFTP channel ...
SSH: Connected
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [rm -rf *;] ...
SSH: EXEC: connected
SSH: EXEC: completed after 201 ms
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/nginx/config/conf.d]
SSH: OK
SSH: put [default.conf]
SSH: OK
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/nginx/config]
SSH: OK
SSH: put [error.html]
SSH: OK
SSH: put [nginx.conf]
SSH: OK
SSH: cd [/data/deploy/giggal-total-back-office]
SSH: OK
SSH: cd [deploy/prod/nginx/shell-script]
SSH: OK
SSH: put [nginxContainerExistenceStatusCheck.sh]
SSH: OK
SSH: put [nginxDockerContainerRun.sh]
SSH: OK
SSH: put [nginxHealthCheck.sh]
SSH: OK
SSH: put [nginxServiceSetting.sh]
SSH: OK
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [chmod +x /data/deploy/giggal-total-back-office/deploy/prod/nginx/shell-script/nginxContainerExistenceStatusCheck.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/nginx/shell-script/nginxDockerContainerRun.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/nginx/shell-script/nginxServiceSetting.sh;                                                                           chmod +x /data/deploy/giggal-total-back-office/deploy/prod/nginx/shell-script/nginxHealthCheck.sh] ...
SSH: EXEC: connected
SSH: EXEC: completed after 201 ms
SSH: Disconnecting configuration [op-total-back-office-nginx] ...
SSH: Transferred 7 ( 0 + 7 ) file(s)
[Pipeline] echo
์šด์˜ ํ™˜๊ฒฝ DMZ ์„œ๋ฒ„ NGINX ๊ด€๋ จ File ์ „๋‹ฌ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ ์ž‘์—… ์†Œ์š” ์‹œ๊ฐ„ : 1.47 ์ดˆ
[Pipeline] }
[Pipeline] // script
Post stage
[Pipeline] script
[Pipeline] {
[Pipeline] discordSend
Sending notification to Discord.
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (์šด์˜ ํ™˜๊ฒฝ DMZ ์„œ๋ฒ„ NGINX Docker ๊ด€๋ จ ์ž‘์—…)
[Pipeline] script
[Pipeline] {
[Pipeline] sshPublisher
SSH: Connecting from host [23565769b6a7]
SSH: Connecting with configuration [op-total-back-office-nginx] ...
SSH: Creating session: username [cicd-admin], hostname [192.168.30.3], port [9,998]
SSH: Connecting session ...
SSH: Connected
SSH: Opening exec channel ...
SSH: EXEC: channel open
SSH: EXEC: STDOUT/STDERR from command [/data/deploy/giggal-total-back-office/deploy/prod/nginx/shell-script/nginxContainerExistenceStatusCheck.sh] ...
SSH: EXEC: connected
[23-07-06_06:39:46] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ NGINX Docker Container ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_06:39:46] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api NGINX Docker Container ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ======================================
[23-07-06_06:39:46] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_06:39:46] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_06:39:46] [INFO] nginx-total-back-office ์ปจํ…Œ์ด๋„ˆ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_06:39:46] [INFO] nginx-total-back-office Container ์กด์žฌํ•˜์ง€ ์•Š์•„์š”.
=====================================================================================================
[23-07-06_06:39:51] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Docker Container ๊ธฐ๋™ ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_06:39:51] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api  Nginx Docker Container ๊ธฐ๋™ ์ž‘์—…======================================
[23-07-06_06:39:51] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_06:39:51] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_06:39:51] [INFO] Nginx Container ๊ธฐ๋™ ํ• ๊ฒŒ์š”.
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
faef57eae888: Pulling fs layer
76579e9ed380: Pulling fs layer
cf707e233955: Pulling fs layer
91bb7937700d: Pulling fs layer
4b962717ba55: Pulling fs layer
f46d7b05649a: Pulling fs layer
103501419a0a: Pulling fs layer
91bb7937700d: Waiting
4b962717ba55: Waiting
f46d7b05649a: Waiting
103501419a0a: Waiting
cf707e233955: Verifying Checksum
cf707e233955: Download complete
91bb7937700d: Verifying Checksum
91bb7937700d: Download complete
faef57eae888: Verifying Checksum
faef57eae888: Download complete
4b962717ba55: Verifying Checksum
4b962717ba55: Download complete
76579e9ed380: Verifying Checksum
76579e9ed380: Download complete
f46d7b05649a: Verifying Checksum
f46d7b05649a: Download complete
103501419a0a: Verifying Checksum
103501419a0a: Download complete
faef57eae888: Pull complete
76579e9ed380: Pull complete
cf707e233955: Pull complete
91bb7937700d: Pull complete
4b962717ba55: Pull complete
f46d7b05649a: Pull complete
103501419a0a: Pull complete
Digest: sha256:08bc36ad52474e528cc1ea3426b5e3f4bad8a130318e3140d6cfe29c8892c7ef
Status: Downloaded newer image for nginx:latest
[23-07-06_06:39:51] [INFO] docker run -itd --privileged --name nginx-total-back-office --hostname nginx-total-back-office -e container=docker -p 1000:80 --restart unless-stopped nginx:latest ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:39:51] [INFO] nginx-total-back-office ๊ธฐ๋™ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ• ๊ฒŒ์š”.
[23-07-06_06:39:51] [INFO] nginx-total-back-office ๊ธฐ๋™ ์—ฌ๋ถ€ ํ™•์ธ ๋Œ€์ƒ Container ID : a17bdd4c1fe3 
[23-07-06_06:39:51] [INFO] nginx-total-back-office Container ๊ธฐ๋™ ์ค‘์ด์—์š”.
[23-07-06_06:39:51] [INFO] ๊ธฐ๋™ ์‹œํ‚จ Container ๋‚ด๋ถ€ Log ์ •๋ณด : 
[23-07-06_06:39:51] [INFO] /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/07/06 06:40:07 [notice] 1#1: using the "epoll" event method
2023/07/06 06:40:07 [notice] 1#1: nginx/1.25.1
2023/07/06 06:40:07 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 
2023/07/06 06:40:07 [notice] 1#1: OS: Linux 5.4.0-153-generic
2023/07/06 06:40:07 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/07/06 06:40:07 [notice] 1#1: start worker processes
2023/07/06 06:40:07 [notice] 1#1: start worker process 28
2023/07/06 06:40:07 [notice] 1#1: start worker process 29
=====================================================================================================
[23-07-06_06:40:12] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Container ์„œ๋น„์Šค ์„ค์ • ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_06:40:12] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api Nginx Container ์„œ๋น„์Šค ์„ค์ • ์ž‘์—…======================================
[23-07-06_06:40:12] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_06:40:12] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_06:40:12] [INFO] ์ž„์˜์˜ Error Page ์‚ฌ์šฉ์„ ์œ„ํ•ด ์„ค์ • ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO] ์ตœ์ดˆ Nginx Container ์•ˆ์— error.html File์„ ์ €์žฅํ•  Directory ์ƒ์„ฑ ์ž‘์—…์„ ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO]  ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:12] [INFO] ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ error.html File Nginx Container /var/www/html ์œ„์น˜์— ๋ณต์‚ฌ ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO] docker cp /data/deploy/giggal-total-back-office/deploy/prod/nginx/config/error.html nginx-total-back-office:/var/www/html/error.html ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:12] [INFO] ๊ธฐ์กด Nginx Container ๊ธฐ๋ณธ default.conf File ๋ณด์•ˆ ์„ค์ • ๋‚ด์šฉ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด ์ œ๊ฑฐ ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO] docker exec nginx-total-back-office rm -rf /etc/nginx/con.f/default.conf ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:12] [INFO] ๋ณด์•ˆ ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ default.conf File ๋ณต์‚ฌ ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO] docker cp /data/deploy/giggal-total-back-office/deploy/prod/nginx/config/conf.d/default.conf nginx-total-back-office:/etc/nginx/conf.d/default.conf ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:12] [INFO] ๊ธฐ์กด Nginx Container ๊ธฐ๋ณธ nginx.conf File ์ œ๊ฑฐ ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO] docker exec nginx-total-back-office rm -rf /etc/nginx/nginx.conf ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:12] [INFO] ์ƒˆ๋กญ๊ฒŒ ์ž‘์„ฑ๋œ nginx.conf File ๋ณต์‚ฌ ํ• ๊ฒŒ์š”.
[23-07-06_06:40:12] [INFO] docker cp /data/deploy/giggal-total-back-office/deploy/prod/nginx/config/nginx.conf nginx-total-back-office:/etc/nginx/nginx.conf ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:12] [INFO] Application ์ค‘๋‹จ ์—†์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ Nginx ์ ์šฉ ์ž‘์—… ์‹ค์‹œํ• ๊ฒŒ์š”.
2023/07/06 06:40:18 [notice] 48#48: signal process started
[23-07-06_06:40:12] [INFO] docker exec nginx-total-back-office nginx -s reload ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
=====================================================================================================
[23-07-06_06:40:18] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Docker Container Health Check ์ž‘์—…์ด ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
======================================[23-07-06_06:40:18] ํ†ตํ•ฉ ๋ฐฑ ์˜คํ”ผ์Šค api  Nginx Docker Container Health Check ์ž‘์—…======================================
[23-07-06_06:40:18] [INFO] Author(๋งŒ๋“ ์ด): ์ฃผ๋‹ˆ(junyharang8592@gmail.com)
[23-07-06_06:40:18] [INFO] LOG Directory ์กด์žฌ ํ•ฉ๋‹ˆ๋‹ค.
[23-07-06_06:40:18] [INFO] ์ตœ์ดˆ nginx-total-back-office ๋‚ด๋ถ€๋ง Health Check ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_06:40:18] [INFO] ์‚ฌ์šฉ ๋ช…๋ น์–ด: curl -I http://192.168.30.3:1000/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' 
[23-07-06_06:40:18] [INFO] 1 ๋ฒˆ์งธ Health Check๊ฐ€ ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_06:40:18] [INFO] curl -I http://192.168.30.3:1000/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_06:40:18] [INFO] nginx-total-back-office Container ์ƒํƒœ๊ฐ€ ์ •์ƒ์ด์—์š”.
[23-07-06_06:40:18] [INFO] curl -I http://192.168.30.3:1000/api/test/profile | grep HTTP | wc -l ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:18] [INFO] nginx-total-back-office ์™ธ๋ถ€๋ง Health Check ์‹œ์ž‘ํ• ๊ฒŒ์š”.
[23-07-06_06:40:18] [INFO] ์‚ฌ์šฉ ๋ช…๋ น์–ด: curl -I http://211.109.XXX.XXX:1000/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' 
[23-07-06_06:40:18] [INFO] 1 ๋ฒˆ์งธ Health Check๊ฐ€ ์‹œ์ž‘ ๋˜์—ˆ์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_06:40:18] [INFO] curl -I http://211.109.XXX.XXX:1000/api/test/profile | grep -oP 'HTTP/1.1 \K\d+' ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     4    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
[23-07-06_06:40:18] [INFO] nginx-total-back-office Container ์ƒํƒœ๊ฐ€ ์ •์ƒ์ด์—์š”.
[23-07-06_06:40:18] [INFO] curl -I http://211.109.XXX.XXX:1000/api/test/profile | grep HTTP | wc -l ๋ช…๋ น์–ด ์ž‘์—… ์„ฑ๊ณตํ•˜์˜€์–ด์š”.
[23-07-06_06:40:18] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ž‘์—… ์ค‘ Nginx Docker Container Health Check ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_06:40:18] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_06:40:18] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_06:40:18] [INFO] CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                   NAMES
a17bdd4c1fe3   nginx:latest   "/docker-entrypoint.…"   28 seconds ago   Up 27 seconds   0.0.0.0:1000->80/tcp, :::1000->80/tcp   nginx-total-back-office 
=====================================================================================================

[23-07-06_06:40:12] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์„œ๋ฒ„ ์ž‘์—… ์ค‘ Nginx Container ์„œ๋น„์Šค ์ œ ์„ค์ • ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_06:40:12] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_06:40:12] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_06:40:12] [INFO] CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                   NAMES
a17bdd4c1fe3   nginx:latest   "/docker-entrypoint.…"   28 seconds ago   Up 27 seconds   0.0.0.0:1000->80/tcp, :::1000->80/tcp   nginx-total-back-office 
=====================================================================================================

[23-07-06_06:39:51] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ž‘์—… ์ค‘ Nginx Docker Container ๊ธฐ๋™ ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_06:39:51] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_06:39:51] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_06:39:51] [INFO] CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                   NAMES
a17bdd4c1fe3   nginx:latest   "/docker-entrypoint.…"   28 seconds ago   Up 27 seconds   0.0.0.0:1000->80/tcp, :::1000->80/tcp   nginx-total-back-office 
=====================================================================================================

[23-07-06_06:39:46] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ž‘์—… ์ค‘ NGINX Docker Container ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ์ž‘์—…์ด ๋๋‚ฌ์–ด์š”.
[23-07-06_06:39:46] [INFO] ๊ธฐ๊น”๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค ํ†ตํ•ฉ ๊ด€๋ฆฌ ์„œ๋ฒ„ API ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ LOG ์œ„์น˜ : /var/log/deploy/giggal-total-back-office
[23-07-06_06:39:46] [INFO] ํ˜„์žฌ ์šด์˜ ์ค‘์ธ Docker Container ์ •๋ณด : 
[23-07-06_06:39:46] [INFO] CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                   NAMES
a17bdd4c1fe3   nginx:latest   "/docker-entrypoint.…"   28 seconds ago   Up 28 seconds   0.0.0.0:1000->80/tcp, :::1000->80/tcp   nginx-total-back-office 
=====================================================================================================

SSH: EXEC: completed after 48,847 ms
SSH: Disconnecting configuration [op-total-back-office-nginx] ...
SSH: Transferred 0 file(s)
[Pipeline] echo
์šด์˜ ํ™˜๊ฒฝ DMZ ์„œ๋ฒ„ NGINX Docker ๊ด€๋ จ ์ž‘์—… ์†Œ์š” ์‹œ๊ฐ„ : 49.621 ์ดˆ
[Pipeline] }
[Pipeline] // script
Post stage
[Pipeline] script
[Pipeline] {
[Pipeline] discordSend
Sending notification to Discord.
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Jenkins CI/CD ์ž‘์—… ์™„๋ฃŒ)
[Pipeline] sh
+ echo Jenkins CI/CD ์ž‘์—…์ด ์™„๋ฃŒ ๋˜์—ˆ์–ด์š”. ๐Ÿ˜Ž
Jenkins CI/CD ์ž‘์—…์ด ์™„๋ฃŒ ๋˜์—ˆ์–ด์š”. ๐Ÿ˜Ž
Post stage
[Pipeline] discordSend
Sending notification to Discord.
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
[Gitea] Notifying branch build status: SUCCESS This commit looks good
[Gitea] Notified
Finished: SUCCESS
๋ฐ˜์‘ํ˜•


Jenkins์˜ ๋ฐฐํฌ๋ฅผ ์‹ค์‹œํ•ด ๋ณด๋ฉด ์œ„์™€ ๊ฐ™์ด Console Output์„ ํ†ตํ•ด ์ •์ƒ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ์ง„ํ–‰๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ ,
์‰˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ๋‚ด์šฉ๋„ ์ฃผ๋‹ˆ๊ฐ€ ์˜๋„ํ•œ๋Œ€๋กœ ์ง„ํ–‰๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.


์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„์ปค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™์ค‘์ธ์ง€ ํ™•์ธํ•ด ๋ณผ๊ฒŒ์š”.

docker ps -a



โˆ™ MAIN Container

MaIn Container

 






โˆ™ SUB Container

Sub Container

 



์œ„์™€ ๊ฐ™์ด ์ •์ƒ์ ์œผ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.



์ด๋ฒˆ์—๋Š” NGINX๋ฅผ ํ†ตํ•ด ๋‚ด, ์™ธ๋ถ€ ๋ชจ๋‘ ์œ„์™€ ๋™์ผํ•œ ์ ‘์† ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ํ•ด ๋ณผ๊ฒŒ์š”.

 

docker ps -a



โˆ™ ๋‚ด๋ถ€๋ง

 

 

Swagger




Error Page








โˆ™ ์™ธ๋ถ€๋ง



Swagger



โš ๏ธ ์ฐธ๊ณ ๋กœ ์šด์˜ ํ™˜๊ฒฝ์—์„œ Swagger๋ฅผ ๊ธฐ๋™ ์‹œํ‚จ๋‹ค๋ฉด ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ ์ •๋ณด, ํ˜น์€ ๊ณต๊ฒฉ ๋“ฑ์ด ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ
์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” Swagger ๋“ฑ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ์„œ๋น„์Šค๊ฐ€ ๊ธฐ๋™๋˜์ง€ ์•Š๊ฒŒ ํ•ด์ค˜์•ผ ํ•ด์š”.




SwaggerConfig



application.yml




application-prod-environment.yml



์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด Swagger ๋™์ž‘์„ ๋ง‰์„ ์ˆ˜ ์žˆ์–ด์š”.







 

 

 

Error Page



์ด๋ ‡๊ฒŒ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ฃผ๋‹ˆ๊ฐ€ ์ž‘์„ฑํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ •๋ฆฌ ๋‚ด์šฉ์€ ์–ด๋– ์…จ๋‚˜์š”?

ํ˜น์‹œ๋ผ๋„ ์ž˜ ๋ชป ๋˜์—ˆ๊ฑฐ๋‚˜, ์ถ”๊ฐ€ ๋˜๋ฉด ์ข‹์€ ์  ํ˜น์€ ์ˆ˜์ •๋˜๋ฉด ์ข‹์€ ์ ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋”ฐ๋œปํ•œ ์กฐ์–ธ ๋ถ€ํƒ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

์ฐธ๊ณ ๋กœ ์–ด๋””๊นŒ์ง€๋‚˜ ํ•ด๋‹น ๋ฐฐํฌ ์ž‘์—…์€ ์ฃผ๋‹ˆ๊ฐ€ ํ˜„์žฌ ๊ตฌ์„ฑํ•œ ์„œ๋ฒ„ ํ™˜๊ฒฝ์ด๋ผ๋˜์ง€ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์  ๋“ฑ์— ๋งž์ถฐ์„œ
CI/CD Pipeline์„ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฐ ์ข… ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“  ๊ฒƒ์ด๋ผ๊ณ  ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์‹œ๋ฉด ๊ณ ๋ง™๊ฒ ์Šต๋‹ˆ๋‹ค.


๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค!

 

 

 

NGINX ์ฟก๋ถ : 115๊ฐ€์ง€ ๋ ˆ์‹œํ”ผ๋กœ ๋ฐฐ์šฐ๋Š” ๊ณ ์„ฑ๋Šฅ ๋ถ€ํ•˜๋ถ„์‚ฐ ๋ณด์•ˆ ์„œ๋ฒ„ ๋ฐฐํฌ์™€ ๊ด€๋ฆฌ 2ํŒ

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

์ด์ „ ๊ธ€: [CI/CD] Jenkins + Docker๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - โ‘ฃ NGINX Server Docker Job (โ‘ข NGINX Docker Run & Health Check)

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•