我正在Docker容器(python:3.6)中运行脚本,但在日志中显示的时间不正确。当我在Python控制台中(容器内部)使用以下Python代码时,它会给出正确的时区。
import datetime
datetime.datetime.now()
datetime.datetime(2019, 8, 3, 17, 26, 25, 662809)
另外,当在容器内运行date
命令时,它会显示正确的时区。
但是,我的脚本中有这个打印语句:
print("Updating....", datetime.datetime.now())
然而,这给了我错误的时区(比实际晚了2个小时)。
这是我的docker-compose.yml:
version: '3'
services:
app:
container_name: app
build: .
restart: unless-stopped
environment:
TZ: Europe/Amsterdam
depends_on:
- db
db:
container_name: db
image: mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: x
MYSQL_DATABASE: x
MYSQL_USER: x
MYSQL_PASSWORD: x
TZ: Europe/Amsterdam
volumes:
- /volumes/x/db:/var/lib/mysql
这是我的crontab文件(在应用容器内运行)
CRON_TZ=Europe/Amsterdam
*/5 * * * * cd /usr/src/app && /usr/local/bin/python3.6 -u -m x > /proc/1/fd/1 2>/proc/1/fd/2
0,30 * * * * cd /usr/src/app && /usr/local/bin/python3.6 -u -m x > /proc/1/fd/1 2>/proc/1/fd/2
5 0 * * * cd /usr/src/app && /usr/local/bin/python3.6 -u -m x > /proc/1/fd/1 2>/proc/1/fd/2
我尝试在docker-compose.yml
中设置时区,这对于date
命令和Python控制台有效。我尝试在crontab文件中设置时区,但脚本仍然显示了错误的时区。
如何在crontab中为Python设置时区,以便日志记录具有正确的时区?另外,我需要在00:05而不是22:05运行脚本,现在可以实现吗?