docker容器 springboot项目默认读取系统时区顺序

背景

springboot项目

dockerfile配置alpine-jdk8基础镜像

问题

服务启动,发现返回的服务数据和日志显示晚了8个小时,容器内执行date -R,系统时区不是东八区。


第一种方案

后知Docker Store 上的官方镜像基本上都默认是 UTC 时区,需要手动设置一下。

docker run --name umsp -d -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8081:30800 umsp:3.6.6

运行服务把宿主机的时间设置挂载到容器里面,这样时间就会跟宿主机一样了。/etc/timezone 时区     /etc/localtime 时间

通过执行date -R验证容器时区已改为东八区。但是返回的数据和日志还是和宿主机不一致。

后面看文章说这种方案需要注意/etc/timezone内容,因为代码中会用到这个设置,也要改成上海时区,还没验证。

第二种方案

如果你不想新建镜像或者重启 container,那么也可以直接进入 容器修改TZ环境变量。执行:

1
2
echo "Asia/Shanghai" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata

以上是 Ubuntu 修改时区的命令。如果你的自定义镜像使用的是其他发行版,需要使用指定命令。

第三种方案

只需要在 Dockerfile 中加入下面两句就可以了:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值