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