前言
SpringBoot 项目打包成Docker镜像部署,时间错误???
△发现时间相差八小时
1.检查宿主机时间 date命令
2.检查容器时间
2.1.进入容器
docker exec -it 容器ID /bin/bash
docker exec -it -u root 容器ID /bin/bash
2.2.查询程序运行时间
查询最近30分钟的日志
docker logs --since 30m 容器ID
△解决问题
1.1.设置容器时间 etc/localtime
docker cp usr/share/zoneinfo/Asia/Shanghai 容器ID:etc/localtime
docker cp etc/localtime 容器ID:etc/localtime
1.2.设置JVM对应时间 etc/timezone
docker cp etc/timezone 容器ID:etc/timezone
1.3.重启容器
docker restart 容器ID
2.1.删除容器/镜像,重新打包
修改项目Dockerfile
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezon
完整Dockerfile:
FROM java:8
VOLUME /tmp
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezon
ADD *.jar /app.jar
EXPOSE 10016
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]