Skip to content

Docker部署springboot项目时间与宿主机相差8小时解决方案

  • Dockerfile

    dockerfile
    FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/openjdk:8-8.6
    
    COPY /target/api-0.0.1-SNAPSHOT.jar api.jar
    EXPOSE 8080
    
    ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "api.jar"]
  • 查看是否相差8小时

    • 查看宿主机时间

      shell
      ubuntu@VM-0-12-ubuntu:$ date -R
      Mon, 28 Nov 2022 17:55:52 +0800
    • 查看docker容器时间

      shell
      docker exec -it 容器名 date -R
      Mon, 28 Nov 2022 09:58:08 +0000
  • 解决方式

    • 设置时区环境变量(ENV TZ=Asia/Shanghai)

      dockerfile
      FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/openjdk:8-8.6
      
      # 设置时区
      ENV TZ=Asia/Shanghai
      
      COPY /target/api-0.0.1-SNAPSHOT.jar api.jar
      EXPOSE 8080
      
      ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "api.jar"]
    • 设置JVM参数(-Duser.timezone=Asia/Shanghai)

      dockerfile
      FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/openjdk:8-8.6
      
      COPY /target/api-0.0.1-SNAPSHOT.jar api.jar
      EXPOSE 8080
      
      ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-Duser.timezone=Asia/Shanghai", "-jar", "api.jar"]
    • 同时设置时区和JVM参数

      dockerfile
      FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/openjdk:8-8.6
      
      # 设置时区
      ENV TZ=Asia/Shanghai
      
      COPY /target/api-0.0.1-SNAPSHOT.jar api.jar
      EXPOSE 8080
      
      ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-Duser.timezone=Asia/Shanghai", "-jar", "api.jar"]

MIT版权,未经许可禁止任何形式的转载