设置芹菜花时区显示错误时间

问题描述

我正在使用 docker 在两个独立的容器中运行 celery worker 和花卉。

主机的时区设置为 America/Denver

celery worker 有以下与时区相关的配置:

app = Celery('app',broker=RABBITMQ_broKER_URL)
app.conf.enable_utc = False
app.conf.timezone = 'America/Denver'

我已经尝试通过几种不同的方式为运行花的容器设置时区,但在花用户界面中为任务显示的日期时间戳关闭了 12 小时。

我尝试使用以下方法设置花的时区:

将容器的 TZ 环境变量设置为 America/Denver 使用容器运行交互式终端,然后按照 Setting the timezone - Alpine Linux

中的说明进行操作

当我更改时区时,它会更改任务的日期时间戳,但正如我所说,它们已关闭 12 小时,我不知道为什么....

Received 和 Started` 列的下图显示了凌晨 3 点 (03:00:00) 和凌晨 4 点 (04:00:00) 之间的时间,但我希望看到下午 3 点 (15:00) 之间的时间00:00) 和下午 4 点 (16:00:00)

提前感谢您的时间!

enter image description here

解决方法

您需要设置容器时区,默认情况下使用 UTC

ENV TZ=America/Denver
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

包括这是您的 Dockerfile,而不是稍后设置时间。