如何使用 docker 在 spring 引导日志中设置正确的时间

How to set the correct time in spring boot logs with docker

下午好。我正在使用 docker 容器和 spring 引导中的应用程序,但我在注册表中遇到时区问题,我在 docker 容器级别配置了时区是 America/Caracas,但是,当我启动容器时,我观察到时区前面有 4 个。通过kubernetes和目录/etc/localtime-->America/Caracas配置我的时区,如下图:

Dockerfile 图片

FROM adoptopenjdk/openjdk11:alpine-jre
ADD FindAccountNumber-0.0.1-SNAPSHOT.jar /home/app.jar
ADD srvdevrma1.jks /etc/letsencrypt/srvdevrma1.jks
ADD tmt097.jks /etc/letsencrypt/tmt097.jks
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/home/app.jar"]

Kubernetes 部署:

  - name: find-account-number-srvdevrma1
    image: find-account-number:v2
    imagePullPolicy: IfNotPresent
    volumeMounts:
    - mountPath: /etc/localtime
      name: tz-caracas     
    resources:
      limits:
        cpu: "300m"
        memory: "350Mi"
      requests:
        cpu: "200m"
        memory: "300Mi"
    ports:
    - containerPort: 8081

  volumes:  
    - name: tz-caracas
      hostPath:
        path: /usr/share/zoneinfo/America/Caracas   

我容器中的日期:

在我的应用程序中注册Spring启动

可能会发生什么,我是否应该在代码中的 spring 启动应用程序级别配置一些东西?

尝试在您的 application.yml 中添加这些行:

logging:
  pattern:
    dateformat: yyyy-MM-dd HH:mm:ss.SSS,America/Caracas

application.properties

的等效配置
logging.pattern.dateformat=yyyy-MM-dd HH:mm:ss.SSS,America/Caracas