Установка локали внутри контейнера докера - PullRequest
1 голос
/ 10 апреля 2019

Мой контейнер имеет настройку локали до POSIX, и я хочу изменить его. После того, как я это сделаю, я выхожу и снова вхожу в контейнер, и локаль возвращается в POSIX. Я не хочу создавать новый образ или запускать новый контейнер, потому что у нас много контейнеров на нескольких машинах.

Запуск этого:

DEBIAN_FRONTEND=noninteractive apt-get install -y locales
sed -i -e 's/# pt_PT ISO-8859-1/pt_PT ISO-8859-1/' /etc/locale.gen
dpkg-reconfigure --frontend=noninteractive locales
export LANGUAGE=pt_PT
export LANG=pt_PT
export LC_ALL=pt_PT

Отлично работает при запуске контейнера, но при выходе и повторном входе в контейнер изменения теряются.

Уже пробовал этот код в контейнере Entrypoint, но экспорт не имеет никакого эффекта.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

изменения не могут быть сохранены в контейнере.Я думаю, что лучший способ - зафиксировать ваши изменения в контейнере и создать новый.

, для этого вы можете использовать "docker commit".

Docker commit

Ссылка: https://docs.docker.com/engine/reference/commandline/commit/

0 голосов
/ 10 апреля 2019

Эти настройки привязаны к сеансу оболочки, а не к ОС. Чтобы сделать его привязанным к ОС, вы должны записать его в файлы ОС, но при перезапуске службы он будет применять образ без этих изменений.

Итак, это должно быть установлено в Dockerfile, быть привязанным к изображению, что-то вроде:

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales && \
    sed -i -e 's/# pt_PT ISO-8859-1/pt_PT ISO-8859-1/' /etc/locale.gen && \
    dpkg-reconfigure --frontend=noninteractive locales
ENV LANG pt_PT  
ENV LANGUAGE pt_PT  
ENV LC_ALL pt_PT  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...