如何在DDEV容器中设置时区?
解决DDEV容器中非root用户设置时区的问题
我太懂这种每次看日志还要算时差的痛苦了!因为DDEV容器里的默认用户确实没有root权限,没法用dpkg-reconfigure tzdata这种常规方法改时区,但咱们有几个不用root就能搞定的方案,分临时和永久两种场景:
临时生效(每次SSH进入容器后设置)
如果只是临时查看日志,不想改配置,直接在容器里设置TZ环境变量就行:
export TZ="Asia/Shanghai" # 替换成你所在的时区,比如America/New_York、Europe/London
设置完之后,不管是用date命令看时间,还是查看Nginx、MariaDB的日志,时间戳都会自动转换成你指定的时区,不用再和GMT换算啦。不过这个设置只在当前SSH会话有效,下次进来得重新设。
永久生效(配置DDEV自动设置时区)
如果想一劳永逸,直接在DDEV的项目配置里添加环境变量,容器启动时自动加载时区设置:
1. Web/Nginx容器
编辑项目根目录下的.ddev/config.yaml,添加web_environment配置:
web_environment: - TZ=Asia/Shanghai # 替换成你的时区
2. DB/MariaDB容器
同样在.ddev/config.yaml里添加db_environment配置:
db_environment: - TZ=Asia/Shanghai # 替换成你的时区
保存配置后,执行ddev restart重启容器,之后不管是SSH进web还是db容器,默认时区都是你设置的那个,日志和时间相关的操作都会自动用这个时区,完全不用再手动换算啦。
小贴士:不知道自己的时区字符串?可以在本地机器上运行
tzselect命令,跟着提示选择就能得到正确的时区值,比如Africa/Johannesburg或者Pacific/Auckland。
内容的提问来源于stack exchange,提问作者rfay
相关产品推荐
相关产品推荐

