ETC/MacOS,Rancher

Mac에서 Python으로 된 thumbor Rancher로 기동

건담아빠 2024. 4. 12. 06:36

 

Mac에서 Python으로 만들어진 thumbor를 Rancher기반에서 컨테이너를 기동하는 스크립트를 간단하게 작성해 놓자.

매번 컨테이너 중지, 시작 삭제 등 여러 기능들을 기억하고 사용하는것도 좋지만 쉘로 만들어 놓고 사용하는것도 나쁘지 않은 선택지일것 같다.

참고로 nerdctl 이부분만 docker로 변경하면 docker환경에서도 가능할듯하다!

 

build-thumbor.sh

#!/bin/sh

IMAGE_NAME=thumbor
IMAGE_VERSION=7.7.4

help(){
  if [ -z "$1" ]; then
    echo "사용법: $0 up|down|restart|logs|bash|build|rm|help"
    echo "    $0 up      : 컨테이너 시작"
    echo "    $0 down    : 컨테이너 종료"
    echo "    $0 restart : 컨테이너 재시작"
    echo "    $0 logs    : 컨테이너 로그 열람 (tail -f)"
    echo "    $0 bash    : 컨테이너에 bash 접속"
    echo "    $0 build   : 컨테이너 빌드"
    echo "    $0 rm      : 컨테이너 제거"
    exit
  fi
}

up() {
  echo ""
  echo "############### [RUN] - nerdctl run ##### - STARTED"
  stop
  echo ""
  rm
  echo ""
  echo "##### [RUN] - nerdctl run $IMAGE_NAME-$IMAGE_VERSION ...options"

  nerdctl run -d \
          --name "$IMAGE_NAME-$IMAGE_VERSION" \
          -p 8888:8888 \
          -p 8889:8889 \
          -v ./docker/share:/thumbor \
          -v ./docker/aws-config:/root/.aws $IMAGE_NAME:$IMAGE_VERSION

  nerdctl ps -a
  echo "############### [RUN] - nerdctl run ##### - ENDED"
  echo ""
}

down() {
  echo "##### [STOP] - nerdctl stop $IMAGE_NAME-$IMAGE_VERSION"
  nerdctl stop "$IMAGE_NAME-$IMAGE_VERSION"
}

logs() {
    nerdctl logs -f $IMAGE_NAME-$IMAGE_VERSION
}

bash() {
    #winpty docker exec -it $IMAGE_NAME bash
    #nerdctl exec -it $IMAGE_NAME bash
    nerdctl exec -ti --env COLUMNS=`tput cols` --env LINES=`tput lines` $IMAGE_NAME-$IMAGE_VERSION bash
}

build() {
  nerdctl build -t $IMAGE_NAME:$IMAGE_VERSION -f ./Dockerfile .
}

rm() {
  echo "##### [RM] - nerdctl rm $IMAGE_NAME-$IMAGE_VERSION"
  nerdctl rm "$IMAGE_NAME-$IMAGE_VERSION"
}

main() {
  local cmd=${1:-''}

  case "${cmd}" in
    "up")
      up
      ;;
    "down")
      down
      ;;
    "restart")
      down
      up
      ;;
    "logs")
      logs
      ;;
    "bash")
      bash
      ;;
    "build")
      build
      ;;
    "rm")
      rm
      ;;
    "help"|*)
      help
      exit
      ;;
  esac
}

main ${@}