반응형

 


 

Kubernetes 또는 Docker, CRI-O 등 Container runtime 환경에서 container를 사용하다보면,

UTC + 0로 timezone이 설정되어 있는 경우를 자주 본다.

Container 내부의 timezoneSeoul(서울)로 변경하려면 아래와 같이 따라하면 된다.

 

FROM ubuntu:22.04

... 중간 생략 ...

##
## Timezone 변경: Asia/Seoul 로 설정
##

RUN   apt install -y tzdata
RUN   ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

... 중간 생략 ...

 


 

 

반응형

 

작성일: 2024년 2월 16일

 

방법 A)  timedatectl 명령으로 시스템 전체의 timezone 변경하기

##
## 세계의 모든 timezone 확인하기
##

$ timedatectl list-timezones
Africa/Abidjan
Africa/Accra
...
Asia/Seoul
Asia/Shanghai
Asia/Singapore
...

##
## 서울 시간대로 변경하기
##

$ timedatectl set-timezone Asia/Seoul




##
## timezone이 잘 변경되었는지 확인한다.
##
$ timedatectl show

Timezone=Asia/Seoul
LocalRTC=no
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Wed 2023-03-15 09:45:38 KST
RTCTimeUSec=Wed 2023-03-15 09:45:38 KST


$ timedatectl status

               Local time: Wed 2023-03-15 09:45:41 KST
           Universal time: Wed 2023-03-15 00:45:41 UTC
                 RTC time: Wed 2023-03-15 00:45:41
                Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
          
$

 

 

방법 B)  환경 변수로 timezone 변경하기

$  cat .bashrc
... 중간 생략 ...
export TZ=Asia/Seoul

$

 

 

 

 

 

반응형

아래와 같은 형식으로 Dockerfile을 작성한다.

## syntax=docker/dockerfile:1


FROM ubuntu:18.04


## 이 Dockerfile 작성자
MAINTAINER sejong


## `apt install ...` 명령으로 패키지 설치시 사용자 입력을 요구하는 것을 방지
## 반드시 `apt install` 명령보다 앞에 DEBIAN_FRONTEND 환경 변수를 설정해야 한다.
ENV DEBIAN_FRONTEND=noninteractive


## 참고: 위 변수를 apt install 명령과 같이 방법도 있다. (아래 예시 참고)
##   `DEBIAN_FRONTEND=noninteractive apt install -y tzdata` 


RUN apt update

RUN apt install -y ca-certificates \
                   net-tools \
                   tzdata \
                   wget
                   
                   
## Timezone
ENV TZ Asia/Seoul


## Locale and Language
ENV LANG C.UTF-8
ENV LANGUAGE ko
ENV LC_ALL C.UTF-8


## 외부 Storage를 마운트하기 위한 정보
RUN mkdir  /mnt/my_volume
VOLUME     /mnt/my_volume


COPY  my-script.sh /usr/local/bin/my-script.sh
ENTRYPOINT ["my-script.sh"]


COPY . /app
RUN make /app
EXPOSE  8080
CMD python /app/app.py

 

Dockerfile을 작성한 후, docker image를 만들기 위해 아래와 같이 build 명령을 수행한다.

$ docker build -t myapp:v1 .

 

 

+ Recent posts