docker部署springboot项目启动时间与宿主机相差8小时的解决

 更新时间:2023年09月18日 14:35:19   作者:、 尘  
项目部署到docker环境,数据库中的时间总是少8个小时,本文就来介绍一下解决方法,具有一定的参考价值,感兴趣的可以了解一下

问题描述

docker部署springboot项目时明明指定了镜像和启动容器的时区,但是进入docker系统时间还是不对。
Dockerfile:

# 基础镜像
FROM openjdk:8
#申明一个环境变量
#ENV HOME_PATH /home
#指定容器启动时,执行命令会在该目录下执行
#WORKDIR $HOME_PATH
#应用构建成功后的jar复制到容器指定目录下
ENV TZ="Asia/Shanghai"
COPY . .
ADD target/test.jar test.jar
#容器启动时执行的命令
ENTRYPOINT ["java","-jar","-Xms512m","-Xmx512m","-Xss256k","test.jar"]

Docke-compose:

version: '3'
services:
  test-service:
    # 指定容器名称
    container_name: test
    # 重启机制
    restart: always
    image: test:v2.0.3
    volumes:
      # 挂载日志和时区
    - ./log:/log
    - /etc/timezone:/etc/timezone:ro
    - /etc/localtime:/etc/localtime:ro
    ports:
    - "39084:39084"
    environment:
      # 指定时区
      - TZ="Asia/Shanghai"

宿主机时间:

ubuntu@VM-0-12-ubuntu:$ date -R
Mon, 28 Nov 2022 17:55:52 +0800

进入docker机器看时间

docker exec -it 容器名 date -R
Mon, 28 Nov 2022 09:58:08 +0000

发现相差了8小时。

解决方法:

在启动java 项目时加上-Duser.timezone=GMT+08参数,指定时间。

具体Dockerfile

# 基础镜像
FROM openjdk:8
#申明一个环境变量
#ENV HOME_PATH /home
#指定容器启动时,执行命令会在该目录下执行
#WORKDIR $HOME_PATH
#应用构建成功后的jar复制到容器指定目录下
ENV TZ="Asia/Shanghai"
COPY . .
ADD target/test.jar test.jar
#容器启动时执行的命令
ENTRYPOINT ["java","-jar","-Xms512m","-Xmx512m","-Xss256k","-Duser.timezone=GMT+08","test.jar"]

docker logs -f 容器名 查看项目时间发现已经正常。

2022-11-28 17:56:54.968  INFO 1 [http-nio-39084-exec-1]{magenta} --- [io-39084-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2022-11-28 17:56:54.987  INFO 1 [http-nio-39084-exec-1]{magenta} --- [io-39084-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 19 ms
2022-11-28 17:56:55.018  INFO 1 [http-nio-39084-exec-1]{magenta} --- [io-39084-exec-1] c.m.o.lims.service.filter.LoginFilter    : --------------> request method : GET
2022-11-28 17:56:55.018  INFO 1 [http-nio-39084-exec-1]{magenta} --- [io-39084-exec-1] c.m.o.lims.service.filter.LoginFilter    : --------------> request url : /api/cxmxv1/excel/downloadMasterExcel

到此这篇关于docker部署springboot项目启动时间与宿主机相差8小时的解决的文章就介绍到这了,更多相关docker部署springboot差8小时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 详解为 Docker 设置代理

    详解为 Docker 设置代理

    本篇文章主要介绍了为 Docker 设置代理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • docker搭建nginx实现负载均衡的示例代码

    docker搭建nginx实现负载均衡的示例代码

    本随着互联网应用规模不断扩大,原有的单一服务器已经无法满足高并发和高可用性的要求,本文就来介绍docker搭建nginx实现负载均衡的示例代码,感兴趣的可以了解一下
    2023-12-12
  • 手动构建自己的docker容器镜像实战

    手动构建自己的docker容器镜像实战

    这篇文章主要介绍了如何手动构建自己的镜像并上传到镜像仓库中,文中有详细的代码实例,需要的朋友可以参考阅读
    2023-04-04
  • Skywalking Docker单机环境搭建过程

    Skywalking Docker单机环境搭建过程

    这篇文章主要介绍了Skywalking Docker单机环境搭建,本次搭建是基于MySQL进行持久化,因此需要提前准备好一个MySQL容器,需要的朋友可以参考下
    2024-02-02
  • docker镜像压缩squash的实现

    docker镜像压缩squash的实现

    本文主要介绍了docker镜像压缩squash的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker制作镜像的完整过程

    Docker制作镜像的完整过程

    本文主要介绍了Docker制作镜像的完整过程,以制作CentOS镜像为例,讲述对镜像自定义,打包以及推送的远程仓库的过程,感兴趣的可以了解一下
    2021-11-11
  • 尝试Docker+Nginx部署单页应用方法

    尝试Docker+Nginx部署单页应用方法

    这篇文章主要介绍了尝试Docker+Nginx部署单页应用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • dockerfile的使用及使用dockerfile部署springboot项目的过程

    dockerfile的使用及使用dockerfile部署springboot项目的过程

    Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本,这篇文章主要介绍了dockerfile的使用,使用dockerfile部署springboot项目,需要的朋友可以参考下
    2023-04-04
  • Docker Namespace容器隔离的实现

    Docker Namespace容器隔离的实现

    Namespace是Docker容器中的一种隔离机制,通过划分资源独立空间,确保容器之间互不干扰,本文主要介绍一下Docker Namespace容器隔离的实现,感兴趣的可以了解一下
    2024-11-11
  • Docker查看正在运行的容器目录的实现方式

    Docker查看正在运行的容器目录的实现方式

    这篇文章主要介绍了Docker查看正在运行的容器目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论