Zainstalowałem kontener Ubuntu Trusty za pomocą Dockera, a kiedy się z nim połączę, widzę, że ustawienia narodowe są ustawione na absolutne minimum:
sudo docker run -i -t <id> /bin/bash
root@<id>:/# 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=
Muszę użyć ustawień regionalnych Unicode (na przykład amerykańskiego angielskiego en_US.UTF-8
).
Próbowałem edytować plik / etc / default / locale i umieściłem go w środku:
# cat /etc/default/locale
LANG=en_US.UTF-8
Ale nawet po opuszczeniu kontenera i powrocie ustawienia regionalne nadal nie są poprawnie ustawione.
Próbowałem też użyć update-locale
polecenia, ale bez powodzenia:
root@cab13a6abe4f:/# update-locale LANG=en_US.UTF-8
root@cab13a6abe4f:/# 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=
W mojej konfiguracji lokalnej mam następującą konfigurację:
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
Jak mogę mieć to samo w moim pojemniku Docker?
Z góry dziękuję!
sudo docker build .
) i działa dobrze.Używam tego w moim
Dockerfile
:Można również użyć
ENV
jednowierszowego:źródło
locale -a
pokazuje, że ustawienia narodowe zostały całkowicie usunięte z obrazu podstawowego.locale-gen
generuje go ponownie i udostępnia.dockerfile
jest Czy można go edytować dla pobranego obrazu?Dockerfile
w katalogu projektu i użyćFROM
dyrektywy, aby rozszerzyć istniejący obraz. Następnie po prostu dodaj wspomniane linie. Dowiedz się więcej oDockerfile
tutajlocale-gen: not found
. Rozwiązanie: stackoverflow.com/a/39761477/1743367Próbować
Jeśli pojawi się
unsupported locale setting
błąd i nie chcesz instalować żadnych nowych lokalizacji.źródło
docker-compose run --rm -e TERM=xterm -e LANG=C.UTF-8 worker bash
Próbowałem tego i pomogło mi to
Dockerfile
po dodaniu obrazui biegnij
źródło