ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Rancher/shell script 만들기
    ETC/MacOS,Rancher 2022. 10. 27. 09:51

     

    mac을 재부팅 할때마다 rancher가 Waiting node 어쩌고 저쩌구 하면서 뻗는다...

    아놔... mariaDB는 data를 볼륨마운트를 한 상태로 올려둬서 다시 올리기만 하면되는데 명령어 확인하고 올리기 겁나 귀찮다..

    급한김에 대충 쉘로 만들어 놓고 써봐야 겠다.!

    혹시 몰라서 '--restart=always' 옵션은 제거 (이것때문일수도 있으니.. 하지만 확인결과 이것때문아님... OTL..)

    설정관련 된건 아래 참조 바람

    https://dchkang83.tistory.com/66?category=1069985 

     

    MacOS/Rancher/MariaDB, MySQL 컨테이너 기동

    기본 $ nerdctl run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<패스워드> mysql:latest MySQL Run $ nerdctl run -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=<패스워드> mysql:latest MariaDB Run..

    dchkang83.tistory.com

     

    쉘 프로그램 작성

    실행 쉘 모아둘곳 찾아서 폴더 생성해 두고 거기서 아래 명령어 실행 (필자는 {사용자}/dev/opt/build-mariaDB.sh 만들거임)

    $ vi build-mariaDB.sh

     

    build-mariaDB.sh

    컨테이너의 타임존 설정도 빼먹지 말자 ( -e TZ=Asia/Seoul )

    #!/bin/sh
    
    IMAGE_NAME=mariadb
    IMAGE_VERSION=10.6.8
    
    usage(){
      if [ -z "$1" ]; then
        echo "사용법: $0 help|run|stop|rm"
        echo "명령어: ./build-mariaDB.sh run"
        exit
      fi
    }
    
    run() {
      echo ""
      echo "############### [RUN] - nerdctl run ##### - STARTED"
      stop
      echo ""
      rm
      echo ""
      echo "##### [RUN] - nerdctl run $IMAGE_NAME-$IMAGE_VERSION ...options"
    
      nerdctl run -d \
              -p 3306:3306 -e MYSQL_ROOT_PASSWORD=test1234@ \
              -v /Users/deokjoonkang/dev/data/rancher/mariadb:/var/lib/mysql \
              -e TZ=Asia/Seoul \
              -e LC_ALL=C.UTF-8 \
              --name "$IMAGE_NAME-$IMAGE_VERSION" \
              --user 1000 $IMAGE_NAME:$IMAGE_VERSION \
              --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci \
              --max_allowed_packet=67108864
              # --lower_case_table_names=0
    
      nerdctl ps -a
      echo "############### [RUN] - nerdctl run ##### - ENDED"
      echo ""
    }
    
    stop() {
      echo "##### [STOP] - nerdctl stop $IMAGE_NAME-$IMAGE_VERSION"
      nerdctl stop "$IMAGE_NAME-$IMAGE_VERSION"
    }
    
    rm() {
      echo "##### [RM] - nerdctl rm $IMAGE_NAME-$IMAGE_VERSION"
      nerdctl rm "$IMAGE_NAME-$IMAGE_VERSION"
    }
    
    main() {
      local cmd=${1:-''}
    
      case "${cmd}" in
        "run")
          run
          ;;
        "stop")
          stop
          ;;
        "rm")
          rm
          ;;
        "help"|*)
          usage
          exit
          ;;
      esac
    }
    
    main ${@}

     

    실행 권한주기

    $ chmod +x ./build-mariaDB.sh

     

    실행 및 확인하기

    컨테이너가 있으면 내리고, 지우고 다시 올리는 스크립트 실행!

    $ ./build-mariaDB.sh run

    ./build-mariaDB.sh run

     

    Timezone 설정

    -e TZ=Asia/Seoul \

     

    엔코딩 설정

    이거 안해주면 mysql source로 덤프 실행하게 되면 한글 깨진다.

    -e LC_ALL=C.UTF-8 \

     

    max_allowed_packet 옵션 설정

    db import 할때 서버가 뻗는 경우가 있는데 패킷 사이즈가 부족할 경우 발생할 경우도 있어서 아래 옵션을 추가해줬다. 상황에 따라서 값을 조정해 주면 될듯하다.

    기본은 4M인데 필자는 64M로 설정해 주었다.

    64 * 1024 * 1024 => 67108864

     

    댓글

Designed by Tistory.