Решение проблемы к кракозябрами русской кодировки
При старте контейнера без русской локали при попытке печатать русскимии буквами, получаются кракозябры.
Решение проблемы для 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 "Привет"
Вот что происходит:
- ставится локаль
ru_RU
- назначается окружение
- для применения изменений, нужно еще раз зайти в оболочку
Конечно, если собирать образ, в окружении уже будет все необходимое. 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