點燈坊

失くすものさえない今が強くなるチャンスよ

對 Node Image 設定 Time Zone

Sam Xiao's Avatar 2021-10-31

Docker image 一般都沒處理 Time Zone,因此都維持 UTC 時間,若有特殊需求要手動調整 Time Zone。

Version

Node 10.16.3

Date

time000

若使用 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。

time001

如此就能依照自己指定的 time zone 顯示了。

Conclusion

  • 一般來說不會特別去調整 container 的 time zone,讓他維持 UTC 即可,只有在特殊情況下才必須調整