Set locale in debian stretch in Dockerfile for any user
6,393
Explained there : http://jaredmarkell.com/docker-and-locales/
According this site and your links the locales are defined into the Dockerfiles by these directives :
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
Ubuntu is on only debian derivative and docker integration is quite similar into both distros.
Also take care of sed into the first file, you just have to uncomment (removing the space is not mandatory)
sed --in-place '/en_US.UTF-8/s/^#//'
Related videos on Youtube
Comments
-
Karl Morrison over 1 year
RUN apt-get update && \ # Install locales apt-get install -y locales && \ # Set locale sed --in-place '/en_US.UTF-8/s/^# //' /etc/locale.gen && \ locale-gen && \ # Set system locale (add line) echo "export LANG=en_US.UTF-8" >> /etc/profile && \ # Set system timezone (add line) echo "export TZ=UTC" >> /etc/profile && \ # If the user will not change, we must source source /etc/profile
I use the image in my GitLab pipeline and the follow is is displayed:
$ cat /etc/profile # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" fi export PATH if [ "${PS1-}" ]; then if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r $i ]; then . $i fi done unset i fi export LANG=en_US.UTF-8 export TZ=UTC $ locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL=
If someone could explain how locale actually works in debian. I've read other answers only for Ubuntu: https://stackoverflow.com/questions/28405902/how-to-set-the-locale-inside-a-docker-container http://jaredmarkell.com/docker-and-locales/
-
Manoel Vilela about 5 years> Also take care of sed into the first file, you just have to uncomment (removing the space is not mandatory) Ok. which first file? /etc/locale.gen didn't exists on debian:stretch-slim image.