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小时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- SpringBoot多模块打包部署Docker的项目实战
- 使用docker部署springboot项目到服务器的详细过程
- dockerfile的使用及使用dockerfile部署springboot项目的过程
- Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤
- Gitlab-runner+Docker实现自动部署SpringBoot项目
- 如何利用Docker部署一个简单的springboot项目
- idea快速实现将SpringBoot项目打包Docker镜像并部署
- Docker部署SpringBoot应用的实现步骤
- Docker compose部署SpringBoot项目连接MySQL及遇到的坑
- 基于SpringBoot项目实现Docker容器化部署的主要步骤