docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker部署springboot差8小时

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

作者:、 尘

项目部署到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小时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文