Задать вопрос
@Limesbra

Ошибка с неизвестной таймзоной?

Есть небольшая программа, суть которой в том, чтобы брать данные из ClickHouse и писать их в PostgreSQL. При локальном запуске всё отрабатывает корректно, а при запуске в Kubernetes выдаёт ошибку:
ERROR could not load time location: unknown time zone Europe/Moscow.
Таймзона в ClickHouse - Europe/Moscow, в Docker-образе так же установлена переменная окружения:
ENV TZ=Europe/Moscow
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
В чем может быть проблема?
  • Вопрос задан
  • 196 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
import _ "time/tzdata"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Проблема или:
1. в том, что в образе, где возникает ошибка - отсутствует соответствующая временная зона и нужно его пересобрать.
2. или в старой версии clickhouse, которая не умеет работать с временными зонами и требует UTC.
Ответ написан
Комментировать
warlinx
@warlinx
Решение проблемы
Убедитесь, что временные зоны установлены в Dockerfile:

FROM ubuntu:latest

RUN apt-get update && \
apt-get install -y tzdata

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

# Остальная часть Dockerfile
Передача переменной окружения в манифест Kubernetes:
Убедитесь, что переменная окружения TZ передается в контейнер в манифесте Kubernetes:

apiVersion: apps/v1
kind: Deployment
metadata:
name: your-deployment
labels:
app: your-app
spec:
replicas: 1
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: your-container
image: your-image:latest
env:
- name: TZ
value: Europe/Moscow
Проверка наличия пакета tzdata:
Убедитесь, что пакет tzdata установлен в вашем Docker-образе. Если он отсутствует, установите его:

apt-get update && apt-get install -y tzdata
Перепроверка времени запуска программы:
Убедитесь, что программа запускается после установки временной зоны. Иногда бывает полезно добавить задержку перед запуском основного процесса, чтобы дать системе время на установку временной зоны.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы