Table of Contents
Alpine 리눅스에서 Timezone 설정하기
도커를 빌드할 때 주로 사용하는 것이 바로 Alpine 리눅스이다. 도커를 사용할 때 경량의 이미지를 기반으로 하면 이미지 pull 속도가 빨라 빠른 배포에 도움이 되어 자주 사용하고 있다. 다만 너무 경량이다 보니 필요한 패키지를 추가로 설치해줘야 하는 경우가 있는데 이미지에 timezone 을 추가로 지정하는 방법을 살펴보았다.
Alpine Linux
Alpine 리눅스는 보안, 단순함, 적은 자원을 사용하는 리눅스로 위키 링크 에서 대부분의 매뉴얼을 찾을 수 있다. 도커 허브에서는 베이스 이미지로 제공하고 있으며 로컬 머신에서 이미지를 다운로드 받아보면 얼마나 작은 사이즈를 유지하는지 확인할 수 있다. 다음처럼 확인했을 때 불과 5.6MB 에 이미지 사이즈를 확인할 수 있었다.
$ docker image pull alpine:latest
Using default tag: latest
latest: Pulling from library/alpine
5843afab3874: Already exists
Digest: sha256:234cb88d3020898631af0ccbbcca9a66ae7306ecd30c9720690858c1b007d2a0
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
$ docker images
alpine 3.14.0 d4ff818577bc 5 secods ago 5.6MB
timezone 설정하기
정확한 내용은 위키 문서를 참고하였다. 일단 alpine 에서는 yum, apt 와 같은 패키지 매니저를 사용할 수 있는데 바로 apk
명령어다. 타임존을 설정하기 위해서는 tzdata
패키지가 필요하다.
apk add tzdata
패키지를 설치하는 것에 더해 /etc/timezone
을 지정해줘야한다.
echo "Asia/Seoul" > /etc/timezone
도커에서 설정하기
도커파일에서는 다음과 같이 사용하고 있다.
ENV TZ=Asia/Seoul
RUN apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone
참고자료
comments powered by Disqus
FEATURED TAGS
accesscontrol
adaptive-growth
alpine-linux
ansible
ansible-tower
apache2.4
architecture
argocd
asgi
aws
awx
backoffice
beautiful-goodbye
begining-docker
benchmark
blockhound
blocking-code
blog
book
brew-cask
build-cache
collaboration
communication
composer
confluence
cronjob
curl
customizing
customlog
data.sql
database
developer
difference
docker
docker-desktop
dockerize
dos-attack
eks
elasticsearch
empty-string
environment-to-do-well
errorlogformat
event-driven
experience
file-upload
filebeat
fluentd
forwarded-option
framework
fuse.js
golang
graceful-deploy
happy-new-year
haproxy
haproxy-1.8
haproxy-acl-logging
haproxy-custom-variable-logging
haproxy-metric
haproxy-reload-fail
haproxy-stat
heap-memory
hedgehog-sharp
how-do-i-work
hugo
index-alias
install
installation
instance-type
inverted-index
istio
iterm
java
jdk-21
jekyll
jekyll-to-hugo
jetbrains
json
k8s
k8s-api
kmooc
kubernetes
leadership
learning-in-2019
lets-encrypt
letsencrypt
limit_req_zone
litestar
logstash
m1-macbook-pro
macro
macro-key-mapping
mapping
match
match_phrase
maven
microservice-설계-및-구현
migration
mm
multi-datasource
mysql
nginx
nginx-ingress
nginx-regexp
ngram
null
openjdk
partial-matching
phpstorm
poeaa
portfolio-expansion
product-strategy
python
query-dsl
rate-limit
rate-litmiting
rds
reindex
rss-template
seamless-reload
search-on-hugo
service-account-role
sidebar-search
speed-up
speedup
spring
spring-boot
spring-camp
spring-camp-2023
spring-event
ssh
struct
study
system-manager
systemd-reload
template
term
throughput
timezone
tips
traffic-management
ulid
unused-plugins
uuid
ux-consideration
virtual-thread
vm-options
webflux
wildcard
zero-downtime
만들면서-배우는-클린-아키텍처
시작하세요-도커
엔터프라이즈-애플리케이션-아키텍처-패턴
쿠버네티스-시작하기