Локаль не отображается в 'locale -a' после добавления его с помощью 'locale-gen' и 'update-locale'

423
Paradoxis

В настоящее время я работаю над проектом, который использует python:latestобраз докера для запуска тестов, поскольку мой проект требует использования локалей, en_US.UTF-8и nl_NL.UTF-8мне пришлось добавить их в мой скрипт CI.

Однако всякий раз, когда я пытаюсь добавить их, они не отображаются в выводе моей локали (и мой код не может их использовать). Кто-нибудь знает, что я здесь делаю не так?

root@90a95fe4f532:/# locale -a C C.UTF-8 POSIX root@90a95fe4f532:/# locale-gen en_US.UTF-8 Generating locales (this might take a while)... Generation complete. root@90a95fe4f532:/# locale-gen nl_NL.UTF-8 Generating locales (this might take a while)... Generation complete. root@90a95fe4f532:/# update-locale root@90a95fe4f532:/# locale -a C C.UTF-8 POSIX root@90a95fe4f532:/# locale-gen nl_NL.UTF-8 Generating locales (this might take a while)... Generation complete. root@90a95fe4f532:/# locale -a C C.UTF-8 POSIX 

Я настроил свое изображение следующим образом:

$ docker pull python:latest $ docker create python:latest --name python $ docker run -it python /bin/bash 
0

1 ответ на вопрос

1
Ben Njeri

Лучший способ правильно установить локаль - через ENVнастройки Dockerfile .

Создайте Dockerfile с содержимым:

FROM python:latest RUN apt-get clean && apt-get update && apt-get install -y locales RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen ENV LANG en_US.UTF-8  ENV LANGUAGE en_US:en  ENV LC_ALL en_US.UTF-8 

Затем создайте новое изображение из образа докера Python. Мы отметим это v1

# docker build -t python:v1 . 

Проверьте, запустив:

# docker run -it --rm --name test python:v1 /bin/bash 

Если вы проверите свою локаль, она должна отражать правильные настройки.

root@ee85b63d6ddf:/# locale -a C C.UTF-8 en_US.utf8 POSIX 

Узнайте больше о контейнерах Aquasec Docker. Руководства по администрированию, охватывающие базовое администрирование и расширенные темы.

Мне достаточно было отредактировать файл locale.gen, нам не нужно мгновенно устанавливать локаль, просто добавьте их в список доступных, спасибо :) Paradoxis 6 лет назад 0

Похожие вопросы