젠킨스를 사용하여 ssh 명령어를 실행하면서 shell 파일을 실행하여 db에 데이터를 임포트 하는 과정에서 한글 깨짐이 발생하며 실행 내용은 아래와 같음
실행 과정
- pipeline에서 ssh agent 플러그인을 사용
- shell 파일을 서버에 업로드 후 아래 내용을 실행
- shell 실행 > 실 db 데이터 백업(sql파일) > 테스트 db에 import
- 테스트 db에 import된 한글 데이터가 깨지는 현상 발생
아래와 같이 테스트를 해보니 jenkins를 통해서 실행하는 경우에 한글이 깨진다.
테스트
- 해당 shell 파일을 직접 ftp 프로그램을 통해 업로드 후 직접 shell 파일을 실행하면 db 한글이 깨지지 않음
- jenkins를 통해 실행하는 경우 한글 깨짐
해결?
- 파일 인코딩과 디비 설정을 의심했지만 utf-8이며 shell을 직접 실행했을때는 잘된다.
- 젠킨스 서버를 통해 명령어 실행 중 아래와 같은 메세지가 출력이 됐다.
- manpath: can't set the locale; make sure $LC_* and $LANG are correct
- 젠킨스 서버와 db 서버의 locale을 확인해보니 달라서 아래 사이트를 참고하여 locale를 추가 설치
- 젠킨스 서버 : 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
'서버' 카테고리의 다른 글
[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 |