2017-02-22 7 views
0

Почему, когда я изменить локаль в Dockerfile с помощью этого ...:Изменение языка в докере Остановка многих команд от выполнения?

ENV LANG en_US.UTF-8 
ENV LANGUAGE en_US:en 
ENV LC_ALL en_US.UTF-8 

... так что я могу добиться изменения локали от этого ...

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:en 
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=en_US.UTF-8 

Тогда я получаю вопросы, такие как это с команды не выполняет:

[email protected]:/# irb bash: irb: command not found

Но если принять эти изменения в местность, и оставить их как есть после восстановленного контейнера, то все работает как и следовало ожидать ??:

# ENV LANG en_US.UTF-8 
# ENV LANGUAGE en_US:en 
# ENV LC_ALL en_US.UTF-8 

[email protected]:/# irb 2.3.1 :001 >

Я не слишком уверен в том, что будет причиной этой проблемы, в результате чего измененный локаль препятствует работе команд, но подозревают, что это может быть просто побочным эффектом такого изменения в Locale в контейнере Docker и, возможно, не реальной проблемой?

+0

Вы можете разместить 2 Dockerfiles? – user2915097

ответ

0

Итак, я просто понял, что я использовал неправильный тип локали для Docker, что связано с этой проблемой here.

Небольшой, но критическое различие C против en_US:

WRONG

ENV LANG en_US.UTF-8 
ENV LANGUAGE en_US:en 
ENV LC_ALL en_US.UTF-8 

RIGHT

ENV LANG C.UTF-8 
ENV LANGUAGE C.UTF-8 
ENV LC_ALL C.UTF-8 

Может кто-нибудь сказать мне, почему Docker использует C как локаль, vs en_US, или любой другой?

Теперь Рубин/irb успешно работает (хотя, с 4-х часов моей жизни потеряли .....)

Смежные вопросы