Docker部署KiwiTCMS时修改时区配置不生效问题咨询
KiwiTCMS Docker部署时区配置不生效解决方案
问题根因
KiwiTCMS基于Django框架开发,Django默认所有时间存储统一使用UTC格式,仅在前端渲染时按配置的时区做转换,你遇到的仅时区名称变更、实际时间仍为UTC的问题,通常是配置优先级不对、缺少时区依赖、用户级时区配置未同步三类原因导致。
具体解决步骤
- 优先使用环境变量配置,避免修改默认配置文件
你挂载的default_config.py属于系统默认配置层,优先级低于用户自定义配置和环境变量,直接在docker-compose.yml的kiwi_web服务配置中新增两项配置:- 在environment字段下添加时区变量:
environment: KIWI_TIME_ZONE: Europe/Berlin TZ: Europe/Berlin- 同步宿主机时区文件到容器(解决容器缺少tzdata依赖的问题),在volumes字段下新增只读挂载:
volumes: - /etc/localtime:/etc/localtime:ro # 保留你原来的其他挂载配置 - 检查用户级时区配置
新版本KiwiTCMS支持单用户独立设置时区,默认继承系统全局配置,若之前手动调整过个人设置,登录账号后进入个人设置页,确认个人时区已设置为Europe/Berlin。 - 验证新生成数据的时间
历史数据(比如调整配置前的用户最后登录时间)是按之前的UTC配置存储的,不会自动转换为新时区时间,调整配置后新建测试用例、提交测试执行记录,验证新产生的时间是否符合柏林时区。 - 全量重启服务生效
修改完配置后执行docker-compose down && docker-compose up -d完全重启服务,避免旧配置缓存残留导致不生效。
内容的提问来源于stack exchange,提问作者Max Wagner
相关产品推荐
相关产品推荐

