Docker 下时区的小坑

引言

前段时间使用 dockernode 镜像挂载了两个定时任务的 js 脚本,但是不按照我预设的 crontab 表达式执行。

原因以及解决方法

在运行 docker 容器时,直接设置了时区的全局变量,如下

ENV TZ='Asia/Shanghai'

由于在容器系统下使用了 crontab 服务,而 crontab 服务使用的时间都是通过 /etc/localtime 读取的。

因此不建议在 Dockerfile 文件中使用 TZ 环境变量,而推荐使用如下:

ENTRYPOINT ["bash" "-c" "cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime"]

参考资料

Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2023 Leamx's Blog All Rights Reserved.

UV : | PV :