springboot项目 时间不准确 -- ubuntu中docker时区调整

一、问题

springboot中 new Date() 获取的日期不准确
获取的时间与实际时间相差8小时

原因

初步断定是时区错乱导致,实际系统的运行环境是在docker中,docker时区发生错误,导致时间错乱。

二、解决

1、通过传递环境变量改变容器时区
-e TZ=Asia/Shanghai

docker run -e TZ=Asia/Shanghai  

2、在Dockerfile中设置镜像时区:
因为Ubuntu 基础镜像中没有安装了 tzdata 包,因此我们需要先安装 tzdata 包。

FROM xxx:xxxx

ENV TZ=Asia/Shanghai \
    DEBIAN_FRONTEND=noninteractive

RUN apt update \
    && apt install -y tzdata \
    && ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone \
    && dpkg-reconfigure --frontend noninteractive tzdata \
    && rm -rf /var/lib/apt/lists/*

3、将宿主机与容器的时间进行挂载

-v /etc/localtime:/etc/localtime

4、进容器内部设置

进入容器

docker exec -it 容器名 /bin/bash 

设置时区

rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Spring BootDocker Compose来部署多个项目是一种常见的做法,它可以有效地管理多个项目的部署和运行。 首先,我们需要为每个项目创建一个独立的Spring Boot应用程序。每个应用程序都应该有自己的独立配置文件、依赖项和实体类。这样,每个项目都可以独立运行和管理。 接下来,我们可以使用Docker Compose来管理这些项目容器化部署。Docker Compose是一个用于定义和管理多个Docker容器的工具,它允许我们将多个容器配置集在一个单独的文件进行管理。 我们可以创建一个名为docker-compose.yml的文件,并在其定义每个项目容器配置。对于每个项目,我们可以指定要使用的镜像、容器的名称、端口映射等信息。在该文件,我们还可以定义项目之间的网络连接、依赖关系等。 一旦我们定义了每个项目容器配置,我们只需运行一个命令docker-compose up就可以启动所有项目容器Docker Compose将会自动下载并启动所需的镜像,并将所有容器连接到一个共享的网络。 通过配置Docker Compose,我们可以同时管理多个项目的配置和依赖项,简化了部署和运行的过程。使用Docker Compose,我们可以轻松地扩展和管理多个项目,提高了应用程序的可伸缩性和可维护性。 总之,通过结合Spring BootDocker Compose,我们可以实现轻松部署、运行和管理多个项目的目标。这种方式可以极大地简化开发人员的工作,提高项目的部署效率和可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值