容器 java 时区_docker 时区

最早碰到时区问题是 发布SPRING BOOT 应用时发现的 发现网关调阅总是提示超时.

按"网上教程",docker exec -it cloud-app date -R

显示 +0000 时间也差了 8小时 于是 某度 解释有如下几种

1)java 启动参数 加入-Duser.timezone=GMT+08

2) 在BUILD docker 时 加入RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

或者干脆把 本地的 /etc/localtime COPY 到容器内的等等。发现都不靠谱。于是耐心分析原因.

首先应用 依赖JDK  ,本例中应用的是 alpine-openjdk8  找到Dockerfile 发现基于 alpine;

再次找到 alpine:3.9 Dockfile

发现根本没安装 tzdata  于是改造 alpine:39  Dockerfile 内加入

# 设置时区为上海RUN apk add tzdata&& cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime  && echo"Asia/Shanghai" > /etc/timezone

然后根据 OPENJDK 的配置 修改一下依赖为 带时区的版本 。

其它应用 如 mysql/redis/nginx/mongodb等均有同样的问题  注意各镜像有的基于 alipine 有的基于 ubuntu 他们的安装软件命令各不相同apk|yum|dnf|apt-get|

等等。可以先跑一个测试一下。再选择加入dockerfile

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值