How to set the locale inside a Debian/Ubuntu Docker container? How to set the locale inside a Debian/Ubuntu Docker container? docker docker

How to set the locale inside a Debian/Ubuntu Docker container?


Put in your Dockerfile something adapted from

# Set the localeRUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \    locale-genENV LANG en_US.UTF-8  ENV LANGUAGE en_US:en  ENV LC_ALL en_US.UTF-8     

If you run Debian or Ubuntu, you also need to install locales to have locale-gen with

apt-get -y install locales

this is extracted from the very good post on that subject, from

http://jaredmarkell.com/docker-and-locales/


Those who use Debian also have to install locales package.

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y localesRUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \    dpkg-reconfigure --frontend=noninteractive locales && \    update-locale LANG=en_US.UTF-8ENV LANG en_US.UTF-8 

This answer helped me a lot.


Just add

ENV LANG C.UTF-8ENV LC_ALL C.UTF-8

into your Dockerfile. (You may need to make sure the locales package is installed.) Nothing else is needed for the basic operation.Meanwhile, outside of Ubuntu, locale-gen doesn’t accept any arguments, that’s why none of the ‘fixes’ using it work e.g. on Debian. Ubuntu have patched locale-gen to accept a list of locales to generate but the patch at the moment has not been accepted in Debian of anywhere else.