Search code examples
dockerubuntudebian

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


I'm running a Ubuntu Docker container. I have a Norwegian keyboard and need to use Norwegian characters (øæå).

My Terminal character encoding is set to UTF-8 and I'm connected to my container using SSH. However, I'm unable to type Norwegian characters, nor copy and paste Norwegian characters, nor use CTL+SHIFT+U+00f8.

I tried:

locale-gen nb_NO.UTF-8

but nothing changed. How do I set the locale and keyboard inside a Docker container?


Solution

  • Put in your Dockerfile something adapted from

    # Set the locale
    RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
        locale-gen
    ENV 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

    https://web.archive.org/web/20230323021946/http://jaredmarkell.com/docker-and-locales/