현재 젠킨스 ci/cd 파이프라인을 사용하면서 도커 파일을 아래와 같이 작성하고 있었습니다.
FROM openjdk:11
EXPOSE 8080
ADD /build/libs/xcubator-0.0.1-SNAPSHOT.jar dockerdemo.jar
ENTRYPOINT ["java", "-jar", "dockerdemo.jar"]
위 코드는 Docker 이미지를 빌드하기 위한 Dockerfile입니다. 이 Dockerfile은 openjdk:11 베이스 이미지를 사용하며, 8080 포트를 노출시킵니다. 또한 /build/libs/xcubator-0.0.1-SNAPSHOT.jar 파일을 dockerdemo.jar로 이름을 변경하여 Docker 이미지에 추가하며, ENTRYPOINT를 통해 "java -jar dockerdemo.jar" 명령어가 컨테이너가 시작될 때 실행됩니다.
도커 파일을 위와같이 잘 사용하고 있었지만 문제점이 있었습니다. 오류를 검사하기 위해서 로그를 보던 중 시간대가 한국 시간대가 아니였습니다. 그래도 데이터베이스에는 한국 시간대로 저장되고 있어서 큰 문제는 아니였지만 로그 시간대가 한국 시간대가 아니라는 것은 시간대로 로그를 분석하기에 불편하였습니다. 챗 지피티에게 물어보니 아래 코드를 추가하면 해당 문제를 해결할 수 있다고 하였습니다.
ENV TZ=Asia/Seoul
위 코드로 도커 이미지 내부 환경 시간대가 한국 시간대로 변경되게 됩니다. 문제 하나가 해결 되었지만 사용하기 불편한 점이 있었는데 저는 로그를 주로 vim을 사용하는데 도커 이미지가 다시 빌드 될 때마다 vim을 깔아주어야 되었습니다. 해당 부분 불편하여 개선점을 찾던중 챗 지핕티가 해당 명령어에 대해서 알려주었습니다.
RUN apt-get update && apt-get install -y vim
위 명령어를 통해서 도커 이미지 os가 초기화 될 때 apt-get 패키지를 업데이트하고 vim을 설치할 수 있도록 하였습니다. 또한 install 앞에 -y를 붙여서 모든 y/n 질문에 자동으로 yes를 선택할 수 있게 하였습니다. 최종적으로 코드는 아래와 같이 사용하게 되었습니다.
FROM openjdk:11
ENV TZ=Asia/Seoul
RUN apt-get update && apt-get install -y vim
EXPOSE 8080
ADD /build/libs/xcubator-0.0.1-SNAPSHOT.jar dockerdemo.jar
ENTRYPOINT ["java", "-jar", "dockerdemo.jar"]