Я установил Ubuntu Trusty контейнер с помощью Docker, и когда я подключаюсь к нему, я вижу, что языковой стандарт установлен на минимум:
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=
Мне нужно использовать язык Unicode (например, американский английский,en_US.UTF-8
).
Я попытался отредактировать файл / etc / default / locale и поместить его внутрь:
# cat /etc/default/locale
LANG=en_US.UTF-8
Но даже после того, как вы покинули контейнер и вернулись, локаль все еще не установлена должным образом.
Я также попытался использовать update-locale
команду, но безуспешно:
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=
На моей локальной конфигурации у меня есть следующая конфигурация:
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=
Как я могу иметь то же самое в моем контейнере Docker?
Заранее спасибо!
sudo docker build .
), и оно работает нормально.Я использую это в моем
Dockerfile
:Можно также использовать
ENV
однострочник:источник
locale -a
показывает, что языковой стандарт полностью удален из базового изображения.locale-gen
генерирует его снова и делает его доступным.dockerfile
? Это может быть отредактировано для загруженного изображения?Dockerfile
в каталоге вашего проекта и использоватьFROM
директиву для расширения существующего изображения. Затем просто добавьте упомянутые строки. Узнайте большеDockerfile
здесьlocale-gen: not found
. Решение: stackoverflow.com/a/39761477/1743367Пытаться
Если вы получили
unsupported locale setting
ошибку и не хотите устанавливать новые локали.источник
docker-compose run --rm -e TERM=xterm -e LANG=C.UTF-8 worker bash
Я попробовал это, и это помогло мне
Dockerfile
после того, как мое изображение я добавляюи беги
источник