Friday, December 13, 2024

Set time zone for container docker

  • ประเด็นคือ ใหม่กับ container docker เลยพึ่งรู้ว่า container มี timezone ของตัวเองเป็น UTC
  • อยากจะแก้เป็น +07 Asia/Bangkok

Option 1 

  • ตั้งค่าตอนจะรัน container (ถ้า image support TZ environment e.g. Debian,Ubuntu,Alpine)

$ docker run -e TZ=Asia/Bangkok -d your-image

  • หรือ monting จาก host แม่มาใช้

$ docker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -d your-image

Option 2 
  • ตั้งตอนอัพเดท image ใน Dockfile
FROM ubuntu:22.04

# Install tzdata and set the time zone
RUN apt-get update && apt-get install -y tzdata && \
    ln -fs /usr/share/zoneinfo/Asia/Bangkok /etc/localtime && \
    dpkg-reconfigure -f noninteractive tzdata

  • แล้วก็สั่ง build image จาก Dockfile
$ docker build -t your-image .
Option 3 
  • อัพเดท container  ที่กำลังรันอยู่ 

$ docker exec -it your-container-name /bin/bash

# apt-get update && apt-get install -y tzdata
# ln -fs /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
# dpkg-reconfigure -f noninteractive tzdata
  • ใน option 3 จะทำให้ container หยุดทำงานต้องสั่ง รันใหม่ แต่ถ้าคอนฟิกแล้วจะให้ restart auto ก็อย่าลืม set config container restart: always
Related
  • https://juuier.blogspot.com/2024/12/container-docker-restart-host-restart.html

Ref

  • https://chatgpt.com/share/675b9df0-89b0-8010-afae-159279c71aca

Popular Posts