أحاول تشغيل حاوية عامل ميناء مع نفس المنطقة الزمنية كمضيف عامل ميناء. المنطقة الزمنية المضيفة هي CEST
.
عندما أركض :
$ dateThu Apr 16 11:04:11 CEST 2020$ docker run -e TZ=CEST debian:buster dateThu Apr 16 09:04:14 CEST 2020
الحاوية هي 2 ساعة وراء المضيف.
من ناحية أخرى ، إذا قمت بتعيين TZ=Europe/Paris
، يعمل كما هو متوقع :
$ docker run -e TZ=Europe/Paris debian:buster dateThu Apr 16 11:04:22 CEST 2020
هل هذا خطأ أم أنني أفتقد شيئا?
يتم تعيين المنطقة الزمنية بشكل افتراضي وتحتاج إلى تغييرها يدويا.
هناك بعض الخيارات:
تعيينه في دوكيرفيل:
ENV TZ=America/Los_AngelesRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
استخدام وحدات التخزين للمزامنة مع المضيف الخاص بك:
volumes:- "/etc/timezone:/etc/timezone:ro"- "/etc/localtime:/etc/localtime:ro"
أو
docker run -v /etc/timezone:/etc/timezone:ro
أخيرا ، قم بتعيينه يدويا ولكن إذا قمت بإعادة تشغيل الحاوية ، فستفقد التكوين:
docker run -e TZ=America/New_York ubuntu date
بعد بعض الأبحاث ، يبدو أن CEST
ليست قيمة صالحة ل TZ
متغير البيئة. CEST
هو مجرد نسخة للعرض من CET
عندما التاريخ الحالي هو الصيف.
في الواقع ، إذا قمت بتعيين TZ
إلى قيمة غير صالحة بشكل واضح ، فإنه يعطي :
$ TZ=FOO dateFri Apr 17 14:07:56 FOO 2020
لاحظ أيضا أنه لا علاقة له بعامل الإرساء.
المراجع :