Сразу скажу что я пробую с контейнером Ubuntu 20.04.6 LTS. На самом деле это контейнер hyperledger/fabric-orderer, но не важно.
ENV TZ=”Asia/Almaty”
Если вы можете создать свой собственный образ, то можно добавить строки в Dockerfile
:
FROM ubuntu:20.04
RUN apt-get update && \
apt-get install -yq tzdata
ENV TZ="Asia/Almaty"
Тут устанавливается пакет tzdata, но можно обойтись и без него. Об этом ниже.
TZ=”Asia/Almaty” в docker
По сути нам лишь достаточно передать переменную TZ с нужным значением. И по сути всё должно работать.
docker run -e TZ='Asia/Almaty' -it hyperledger/fabric-orderer:latest bash
Так а почему не работает?
А не работает потому что как нам известно docker образы обычно урезаны, чтобы не занимать много места и т.д. Так вот всё временные зоны у нас хранятся в директории /usr/share/zoneinfo/, которой в контейнере конечно нет.
Cамым простым будет будет проброс этой директории с хоста в контейнер:
docker run -e TZ='Asia/Almaty' –volume /usr/share/zoneinfo/Asia:/usr/share/zoneinfo/Asia:ro -it hyperledger/fabric-orderer:latest bash
Docker compose file
services:
orderer2:
container_name: orderer2
environment:
- TZ=Asia/Almaty
volumes:
- /usr/share/zoneinfo/Asia:/usr/share/zoneinfo/Asia:ro
Комментарии