Решение проблемы к кракозябрами русской кодировки

При старте контейнера без русской локали при попытке печатать русскимии буквами, получаются кракозябры.

Решение проблемы для debian-образов на примере php:7.4-fpm:

docker run -it --rm php:7.4-fpm bash
apt update && apt install -y locales && sed -i '/ru_RU.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
export LANG=ru_RU.UTF-8 && export LANGUAGE=ru_RU:UTF-8 && export LC_ALL=ru_RU.UTF-8
echo "Привет"
bash
echo "Привет"

Вот что происходит:

  1. ставится локаль ru_RU
  2. назначается окружение
  3. для применения изменений, нужно еще раз зайти в оболочку

Конечно, если собирать образ, в окружении уже будет все необходимое. Dockerfile:

FROM php:7.4-fpm

RUN apt update && apt install -y locales && sed -i '/ru_RU.UTF-8/s/^# //g' /etc/locale.gen && locale-gen

ENV LANG=ru_RU.UTF-8
ENV LANGUAGE=ru_RU:UTF-8
ENV LC_ALL=ru_RU.UTF-8
Печать/экспорт