[Jenkins] ssh – db

jenkins로 ssh 명령어 실행 중 쉘 파일을 실행하여 데이터베이스로 데이터를 import하면 한글 깨짐이 발생하며 실행 내역은 다음과 같다.

실행 과정

  1. 파이프라인에서 SSH 에이전트 플러그인 사용
  2. 셸 파일을 서버에 업로드한 후 다음을 실행합니다.
    • Shell 실행 > 현재 DB 데이터 백업(SQL 파일) > 테스트 DB로 가져오기
  3. 테스트 데이터베이스로 가져온 한글 데이터가 손상됨

아래 테스트 결과 Jenkins를 통해 실행하면 한글이 깨집니다.

시험

  1. FTP 프로그램을 통해 해당 쉘 파일을 업로드한 후 직접 쉘 파일을 실행하면 db 한글이 깨지지 않습니다.
  2. 젠킨스 통하는 중 깨진 한글

해결하다?

  1. 파일 인코딩과 DB 설정을 의심했는데 utf-8이고 직접 쉘을 실행하면 잘 됩니다.
  2. Jenkins 서버에서 명령을 실행하면 다음 메시지가 나타납니다.
    • manpath: 로케일을 설정할 수 없습니다. $LC_* 및 $LANG이 올바른지 확인하십시오.
  3. Jenkins 서버와 DB 서버의 로케일 확인 후 서로 다른 경우 추가 로케일 설치는 아래 사이트 참조
    • 젠킨스 서버: C.UTF-8
    • DB 서버: ko_KR.UTF-8
  1. 기존 Jenkins Dockerfile에 다음을 추가하고 다시 실행하십시오.

Dockfile

RUN apt-get install -y locales git \
    && localedef -f UTF-8 -i ko_KR ko_KR.UTF-8
ENV LC_ALL ko_KR.UTF-8