jenkins로 ssh 명령어 실행 중 쉘 파일을 실행하여 데이터베이스로 데이터를 import하면 한글 깨짐이 발생하며 실행 내역은 다음과 같다.
실행 과정
- 파이프라인에서 SSH 에이전트 플러그인 사용
- 셸 파일을 서버에 업로드한 후 다음을 실행합니다.
- Shell 실행 > 현재 DB 데이터 백업(SQL 파일) > 테스트 DB로 가져오기
- 테스트 데이터베이스로 가져온 한글 데이터가 손상됨
아래 테스트 결과 Jenkins를 통해 실행하면 한글이 깨집니다.
시험
- FTP 프로그램을 통해 해당 쉘 파일을 업로드한 후 직접 쉘 파일을 실행하면 db 한글이 깨지지 않습니다.
- 젠킨스 통하는 중 깨진 한글
해결하다?
- 파일 인코딩과 DB 설정을 의심했는데 utf-8이고 직접 쉘을 실행하면 잘 됩니다.
- Jenkins 서버에서 명령을 실행하면 다음 메시지가 나타납니다.
- manpath: 로케일을 설정할 수 없습니다. $LC_* 및 $LANG이 올바른지 확인하십시오.
- Jenkins 서버와 DB 서버의 로케일 확인 후 서로 다른 경우 추가 로케일 설치는 아래 사이트 참조
- 젠킨스 서버: C.UTF-8
- DB 서버: ko_KR.UTF-8
- 기존 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