용로그
article thumbnail

평소 젠킨스를 잘 사용하고 있었지만, 눈에 띄게 불편한 점이 있었다. 바로 빌드 시간이 미국시간(UTC)으로 설정되어 시간 차이가 꽤 나는 것이었다. 

 

계속 구글에 서치를 해보았는데, 대부분 실행할 때 타임존을 서울로 설정해주었다. 하지만 나는 젠킨스 컨테이너를 이미 실행시키고 있다. 만약 이걸 삭제한다면 나의 수고가 물거품이 되어버릴 것이다.

 

그래서 포기하지 않고 찾은 결과를 여기에 정리한다. 많은 사람들에게 도움이 되면 좋겠다.

 

젠킨스 컨테이너 접속

우선 실행중인 컨테이너의 타임존을 변경하려면, 젠킨스 컨테이너에 직접 접속해야 한다.

 

처음 시도한 명령어

처음에 컨테이너로 접속할 때 아래의 명령어로 접속했었다. 하지만 이내 명령어를 바꾸게 되었는데, 배경은 아래에서 설명하겠다.

sudo docker exec -it {container-name} bash

 

변경한 명령어

sudo docker exec -itu 0 {container-name} bash

 

Vim 설치

명령을 실행하여 컨테이너 내부로 접속했다면, vim조차 안 깔려있는 상태일 것이다. 만약 위의 첫 번째 명령어로 컨테이너에 접속했다면, 관리자 권한이 없기 때문에 컨테이너가 sudo 명령어조차 인지하지 못한다.

 

sudo 명령어를 인지하지 못하는 모습

 

그래서 docker exec에서 제공하는 u 명령어를 이용해서 root 권한으로 접속했다. 간단하게 운영체제 업데이트를 해준 다음, 바로 설치해 주면 된다.

 

apt-get update
apt-get install vim

 

쉘 스크립트 수정하기

별도의 설정을 하지 않았다면 아래의 경로에 있는 jenkins 쉘 스크립트에 접속한다. 해당 쉘 스크립트는 실제 젠킨스를 빌드할 때 사용하는 스크립트 파일이며, 중요 정보를 담고 있으니 많이 수정하지 않는 것을 추천한다.

 

vi /usr/local/bin/jenkins.sh

 

많은 코드들이 있지만, exec java~~ 명령어 윗 줄에 해당 명령어를 추가한다. exec java~~ 명령어 라인은 실제로 젠킨스를 실행하는 코드이니, 타임존은 무조건 그 위에 설정해주어야 한다.

 

export TZ="Asia/Seoul"

 

 

추가했다면 :wq 명령어로 저장한 다음 exit 명령어로 컨테이너 외부로 빠져나온다.

 

컨테이너 재실행하기

변경한 타임존을 적용하려면 컨테이너를 재실행시켜주어야 한다. 아래 명령어를 따라 하자.

 

sudo docker stop {container-name}
sudo docker start {container-name}

 

성공적으로 재실행되었다면, 젠킨스에 접속해서 타임존이 적절하게 변경되었는지 보자.

 

 

정상적으로 한국 시간이 적용된 걸 확인할 수 있다.

profile

용로그

@용로그

벨덩보단 용덩 github.com/wonyongChoi05