docker时区问题

问题描述:

最近在使用dockers部署应用时发现,每次执行更新时时间会往后推8个小时, 查看数据库间连接:db.url=jdbc:mysql://xxxxx/xx?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8&autoReconnect=true&failOverReadOnly=false

使用javaLocalDateTime.now()打印出的时间也是快了8个小时

解决方案:

docker创建应用的容器时,不仅要将/etc/localtime挂载进去,也要将时区挂载进去.

例如:

 docker run --name app-name -d \
 -v /etc/localtime:/etc/localtime \
 -v /app:/app
 --network xx-bridge \
 -p 8080:8080 java:8 \
 sh -c 'echo "Asia/Shanghai" > /etc/timezone && java -jar /app/app.jar '