本文主要記錄在使用 Alpine 鏡像時(shí)如何解決時(shí)區(qū)問(wèn)題。
首先創(chuàng)建一個(gè)基礎(chǔ)的鏡像用于測(cè)試:
from alpine:latest
- 構(gòu)建鏡像:
docker image build -t alpine-test .
- 啟動(dòng)容器并進(jìn)入終端:
docker run --name alpine -it alpine-test:latest
容器內(nèi)執(zhí)行 date -R
,輸出:Wed, 01 Sep 2021 02:43:24 +0000
,發(fā)現(xiàn)不是中國(guó)時(shí)區(qū)带斑。
容器已啟動(dòng)
在容器已啟動(dòng)的情況下奏夫,可以通過(guò)安裝 tzdata 來(lái)設(shè)置時(shí)區(qū)刮吧。
apk add -U tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再次測(cè)試移必,輸入期望結(jié)果:Wed, 01 Sep 2021 10:48:07 +0800
承边。
最后刪除時(shí)區(qū)文件:apk del tzdata
編寫(xiě)鏡像時(shí)設(shè)置時(shí)區(qū)
from alpine:latest
ENV TZ Asia/Shanghai
RUN apk add tzdata && cp /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo ${TZ} > /etc/timezone \
重新構(gòu)建鏡像并測(cè)試遭殉,時(shí)區(qū)設(shè)置正常。在有的教程里面最后會(huì)添加刪除時(shí)區(qū)文件的命令博助,但是經(jīng)過(guò)測(cè)試险污,添加該命令后時(shí)區(qū)設(shè)置會(huì)失效。