java网站启动后,docker容器内的时区和宿主机时区不相同,导致考试系统时间错误

java网站启动后,docker容器内的时区和宿主机时区不相同,导致考试系统时间错误


7e2802b81be10be51e1182c53dcd399d
37b1f6d52f1c92372f918524e5f1429a

image

这个问题有解决吗?我也想了解下这个情况如何解决 :sweat_smile:

将宿主机的 时间 挂载到容器即可

但是这样应用重启之后会导致时间再次错误 半永久的做法是 找到 1panel的安装目录
例如 /opt/1panel/1panel/runtime/java/对应的应用/docker-compose.yml
修改这个docker-compose.yml文件中的内容

networks:
    1panel-network:
        external: true
services:
    java:
        command: bash /run.sh
        container_name: ${CONTAINER_NAME}
        image: bitnami/java:${JAVA_VERSION}
        labels:
            createdBy: Apps
        networks:
            - 1panel-network
        ports:
            - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${JAVA_APP_PORT}
        restart: on-failure:5
        volumes:
            - ${CODE_DIR}:/app
            - ./run.sh:/run.sh
            - ./.env:/.env
            #- /etc/timezone:/etc/timezone  # 挂载时区配置
            #- /etc/localtime:/etc/localtime  # 挂载本地时间文件
        working_dir: /app
        environment:
            - TZ=Asia/Shanghai  # 直接通过环境变量设置时区

v2 版本我们会支持在页面上直接添加这些参数