젠킨스를 사용하여 ssh 명령어를 실행하면서 shell 파일을 실행하여 db에 데이터를 임포트 하는 과정에서 한글 깨짐이 발생하며 실행 내용은 아래와 같음

실행 과정

  1. pipeline에서 ssh agent 플러그인을 사용
  2. shell 파일을 서버에 업로드 후 아래 내용을 실행
    • shell 실행 > 실 db 데이터 백업(sql파일) > 테스트 db에 import
  3. 테스트 db에 import된 한글 데이터가 깨지는 현상 발생

아래와 같이 테스트를 해보니 jenkins를 통해서 실행하는 경우에 한글이 깨진다.

테스트

  1. 해당 shell 파일을 직접 ftp 프로그램을 통해 업로드 후 직접 shell 파일을 실행하면 db 한글이 깨지지 않음
  2. jenkins를 통해 실행하는 경우 한글 깨짐

해결?

  1. 파일 인코딩과 디비 설정을 의심했지만 utf-8이며 shell을 직접 실행했을때는 잘된다.
  2. 젠킨스 서버를 통해 명령어 실행 중 아래와 같은 메세지가 출력이 됐다.
    • manpath: can't set the locale; make sure $LC_* and $LANG are correct
  3. 젠킨스 서버와 db 서버의 locale을 확인해보니 달라서 아래 사이트를 참고하여 locale를 추가 설치
    • 젠킨스 서버 : 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

'서버' 카테고리의 다른 글

[Ubuntu] 파티션 / ntfs 숨기기  (0) 2023.12.10
[nginx] nginx + https + vue3 + Docker  (0) 2023.10.27
[ubuntu] ansible 설치  (0) 2023.02.02
[Vagrant] - 테스트 서버 생성  (0) 2022.04.27
[Docker] 컨테이너간 통신  (0) 2021.09.07

+ Recent posts