Проблемы с кодированием при запуске приложения в докере (Python, Java, Ruby,...) с контейнерами Ubuntu (ascii, utf-8) На моем собственном ПК приложение работает хорошо, но когда оно развертывается в докере, оно терпит неудачу из-за недопустимых символов. Я использую контейнер ubuntu:lastest и python3, java и ruby. Ответ 1 Вам необходимо установить язык правильно. Это минимальный правильный Dockerfile: FROM ubuntu:latest RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 Обычные изображения докеров не указывают локали. Вы увидите это, если зайдете в нее и выполните locale: sudo docker exec -i -t yowsup3 bash Источники: http://jaredmarkell.com/docker-and-locales/ https://github.com/docker-library/python/issues/13 Ответ 2 Я попробовал описанное выше решение и обнаружил, что команда locale-gen недоступна в моем докере. поэтому добавьте эту строку над командой RUN или добавьте ее. RUN apt-get update && apt-get install -y locales && locale-gen en_US.UTF-8 теперь это будет работать. и второго ENV LC_ALL en_US.UTF-8 достаточно, чтобы установить большую часть переменной, но он остался с двумя свободными, поэтому нам нужно установить все 3.
Ответ 1 Вам необходимо установить язык правильно. Это минимальный правильный Dockerfile: FROM ubuntu:latest RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 Обычные изображения докеров не указывают локали. Вы увидите это, если зайдете в нее и выполните locale: sudo docker exec -i -t yowsup3 bash Источники: http://jaredmarkell.com/docker-and-locales/ https://github.com/docker-library/python/issues/13
Ответ 2 Я попробовал описанное выше решение и обнаружил, что команда locale-gen недоступна в моем докере. поэтому добавьте эту строку над командой RUN или добавьте ее. RUN apt-get update && apt-get install -y locales && locale-gen en_US.UTF-8 теперь это будет работать. и второго ENV LC_ALL en_US.UTF-8 достаточно, чтобы установить большую часть переменной, но он остался с двумя свободными, поэтому нам нужно установить все 3.