На примере Node.js
Если вы собираете свой докер для Node.js, то позаботьтесь о настройке правильной локали и таймзоны. Если их не настроить, то методы toLocaleString()
будут работать не так, как вы ожидали, да и серверное время, в связи с этим, будет отличаться.
Когда я озаботился о настройке локали в докер образе, который я собирал на базе официального Node:lts, я столкнулся с тем, что это может быть не тривиальной задачей и придется посетить не один пост на SO, прежде чем найдете ответы, смиксуете их и все заработает как надо.
Вот мой финальный рецепт, который я использую:
FROM node:lts
ENV TZ ‘Europe/Moscow’
ENV LC_ALL ru_RU.UTF-8
ENV LANG ru_RU.UTF-8
ENV LANGUAGE ru_RU.UTF-8
RUN echo $TZ > /etc/timezone
RUN apt-get update && DEBIAN_FRONTEND=noninteractive
&& apt-get install -y locales tzdata systemd
RUN sed -i -e ‘s/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/’ /etc/locale.gen
&& dpkg-reconfigure —frontend=noninteractive locales
&& update-locale LANG=ru_RU.UTF-8
RUN echo “LANGUAGE=ru_RU.UTF-8” >> /etc/default/locale &&
echo “LC_ALL=ru_RU.UTF-8” >> /etc/default/locale
RUN rm /etc/localtime &&
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &&
dpkg-reconfigure -f noninteractive tzdata
RUN localedef -c -f UTF-8 -i ru_RU ru_RU.UTF-8
RUN apt-get clean