태그 보관물: locale

locale

Docker Ubuntu 14.04 컨테이너에서 로캘을 유니 코드로 구성하는 방법은 무엇입니까? 로케일) 을

Docker를 사용하여 Ubuntu Trusty 컨테이너를 설치했으며 연결하면 로케일이 최소로 설정되어 있음을 알 수 있습니다.

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=

유니 코드 로캘 (예 : 미국 영어 로케일) 을 사용해야합니다 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 컨테이너에서 어떻게 동일하게 사용할 수 있습니까?

미리 감사드립니다!



답변

/etc/default/locale파일은 PAM에 의해로드됩니다; 참조 /etc/pam.d/login예를 들어. 그러나 Docker 컨테이너에서 명령을 실행할 때 PAM이 호출되지 않습니다. 로케일을 구성하려면 Dockerfile에서 관련 환경 변수를 설정하십시오. 예:

FROM ubuntu:trusty
ENV LANG en_US.UTF-8
CMD ["/bin/bash"]


답변

나는 이것을 내에서 사용한다 Dockerfile:

# Set the locale
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

하나의 ENV라이너를 사용할 수도 있습니다 .

RUN locale-gen en_US.UTF-8
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'


답변

시험

ENV LANG C.UTF-8

당신이 얻을 경우 unsupported locale setting오류를하고 할 새로운 로케일을 설치하지.


답변

나는 이것을 시도하고 Dockerfile내가 추가 한 이미지 후에 도움이되었다.

ENV LANG='en_GB.UTF-8' LANGUAGE='en_GB:en' LC_ALL='en_GB.UTF-8'
RUN echo en_GB.UTF-8 UTF-8 >> /etc/locale.gen && locale-gen

실행

docker-compose build
docker-compose up -d


답변