Контейнеры docker на базе легковесного Linux Alpine используют часовой пояс UTC по умолчанию, для того, что-бы это исправить необходимо выполнить 2 шага.
- При запуске, передать контейнеру переменную окружения
-e TZ="Europe/Kiev"
(в вашем случае ваш часовой пояс). Строка запуска будет выглядеть примерно следующим образомdocker run --name containername -d \ -e TZ="Europe/Kiev" \ nginx:alpine
Но это сработает только в том случае, если в образе уже установлен пакет
tzdata
, например в nginx образе это так. - Если вы собираете свой образ на основе чистого alpine:latest — вам нужно установить
tzdata
в ваш образ, ниже пример DockerfileFROM alpine:latest RUN apk update && \ apk add --no-cache tzdata ENTRYPOINT ["date"]
Ниже я привожу пример своего Dockerfile, в котором собирается моё flask приложение, устанавливаются зависимости (в том числе tzdata), таким образом, что-бы образ не сильно вырос в размере.
FROM python:3.7-alpine WORKDIR /home/app COPY app app COPY migrations migrations COPY config.py requirements.txt run.py run.sh ./ RUN python -m venv venv RUN apk update && \ apk add --no-cache --virtual build-deps gcc python3-dev musl-dev postgresql-dev && \ apk add --no-cache postgresql-dev tzdata && \ venv/bin/pip install --no-cache-dir psycopg2-binary gunicorn && \ apk del --no-cache build-deps RUN venv/bin/pip install -r requirements.txt RUN chmod +x run.sh ENV FLASK_APP run.py EXPOSE 5000 ENTRYPOINT ["./run.sh"]