如何解决使用Docker容器的时间戳错误:时区设置无效
技术堆栈是Spring Boot 2.2.5.RELEASE,带有Hibernate的JPA,Java 8,MysqL 5.7.31。 有一些数据库字段包含像2020-11-26 14:00这样的时间戳,所以没有时区。
在Windows上运行Spring Boot应用程序和MysqL数据库(没有任何docker介入),没有问题。
但是,当Spring Boot应用程序在macOS(直接)和docker容器内的MysqL数据库上运行时,时间戳(从数据库中读取)的时间戳值(2020-11-26 13:00)有错误(我使用了这个)一个:https://hub.docker.com/_/mysql-> 5.7.31)。 我可以通过在application.properties中设置时区来解决此问题:
spring.datasource.url=jdbc:MysqL://${MysqL_HOST:localhost}:3306/<mydb>?serverTimezone=Europe/Berlin&sessionVariables=sql_mode='...
我还通过docker容器中的Spring Boot和MysqL数据库在管道(gitlab.com)中运行应用程序。更具体地说,它们在单独的容器中运行。现在,时间戳错误的问题再次发生。通过spring.datasource.url设置的时区似乎无效。
解决方法
docker容器的时区设置不正确。
variables:
TZ: "Europe/Berlin"
.gitlab-ci.yml 中的可以解决问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。