Docker image 一般都沒處理 Time Zone,因此都維持 UTC 時間,若有特殊需求要手動調整 Time Zone。
Version
Node 10.16.3
Date
若使用 node:lts-alpine
,預設 time zone 為 UTC
。
Dockerfile
FROM node:lts-alpine
WORKDIR /usr/app
COPY package.json .
RUN apk add tzdata
RUN yarn install --production
COPY dist/* ./
CMD [ "node", "index.js" ]
第 4 行
RUN apk add tzdata
另外使用 apk
新增 tzdata
。
Docker Compose
version: "3"
services:
graphql:
image: node-timezone:${GQL_TAG}
container_name: MyGraphQL
restart: always
ports:
- ${GQL_PORT}:4000
environment:
- TZ=Asia/Taipei
第 9 行
environment:
- TZ=Asia/Taipei
在 docker-compose.yml
內對 TZ
環境變數設定 time zone。
如此就能依照自己指定的 time zone 顯示了。
Conclusion
- 一般來說不會特別去調整 container 的 time zone,讓他維持 UTC 即可,只有在特殊情況下才必須調整