peterlyz (@peterlyz520)折腾了俩小时才发现,Docker 容器时间不对竟是因为没挂时区 中发帖

起因是我部署的一个定时任务老是差 8 小时执行,日志时间也对不上。一开始怀疑是 cron 表达式写错,改了半天没用。 
后来 docker exec 进容器 date 一看,时间是 UTC,宿主机却是 CST。瞎折腾了半个多小时(mark一下)。
后来搜了下这个问题(找到三种解法):

挂载宿主机时区文件(最干净,推荐):
volumes:


/etc/localtime:/etc/localtime:ro
/etc/timezone:/etc/timezone:ro


设环境变量 TZ=Asia/Shanghai(需镜像装了 tzdata 才生效)
Dockerfile 里 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

踩这个坑的佬应该不止我一个,记录一下。你们一般用哪种方案?