centos docker container에서 node.js 서버 셋팅 중 locale문제가 있었고, locale을 변경하는 과정에서 오류가 발생했다.
나의 최종 목표는!
docker container의 locale을 ko_KR.utf8로 변경하는 것 & docker를 내렸다 올려도 설정한 locale값이 유지되는 것이다.
나의 docker container의 OS 정보:
(p.s : cat /etc/*release* 하면 os정보를 확인 할 수 있다.)
(지극히 현재 상황에서 해결해나간 방법을 순서대로 기록한 것입니다.)
명령어 # locale을 치니 다음과 같이 나왔다.
그리고나서 localectl 명령어를 통해 locale 상태정보를 확인하려고 했는데, 다음과 같은 에러가 나왔다.
# localectl status
이 에러를 해결하기 위해서는
docker를 run할때 --privileged옵션과, -d옵션으로 /sbin/init을 실행한 후,
exec로 /bin/bash를 실행해야 한다.
현재 접속한 docker container를 빠져나오고, 다시 docker container를 run했다.
docker run --privileged -p 8089:8089/tcp -itd --name miniServer -d -v /dev/repo/miniServer:/ repo mini:5 /sbin/init
(--privileged옵션과 /sbin/init옵션 외에 포트 지정, 호스트와 마운트하는 옵션, container 이름 설정하는 옵션까지 넣은 명령어이다.)
그 다음으로, 생성된 docker container에 접속한다.
docker exec -it 2314d12fd0fd6 /bin/bash
# locale -a 명령어를 치면 현재 셋팅할 수 있는 언어목록이 나온다.
한국어가 없어서 한국어 지원을 할 수 있도록 한다!
# localedef -f UTF-8 -i ko_KR ko_KR.utf8
# export LANG=ko_KR.utf8
그 다음 # locale 명령어로 확인해보면, 현재 locale이 무엇인지 확인하면 적용되어있다!
현재 docker container의 상태를 commit하여 유지하고, commit한 docker image를 다시 run했다.
그런데 내가 설정한 locale이 아니었다. 그래서 다시 이 문제를 해결하기위해 열심히 구글링을 했다.
해결책은, docker container를 run할 때, locale을 설정하는 옵션을 추가하는 것이다!
" -e LC_ALL=ko_KR.utf8 " 이 옵션을 추가하면된다.
최종적으로 docker container를 run할 때, 다음과 같이 docker container를 run했다.
docker run --privileged -e LC_ALL=ko_KR.utf8 -p 8089:8089/tcp -itd --name miniServer -d -v /dev/repo/miniServer:/ repo mini:5 /sbin/init
끝, 내가 원하는대로 docker container를 띄웠을 때 한국어로 설정하는 것이 되었다!
참고블로그:
https://nuggy875.tistory.com/78
'오류해결' 카테고리의 다른 글
[matplotlib font family error] findfont: Font family ['NanumGothic'] not found. Falling back to DejaVu Sans. / font_manager matplotlib centos7 (0) | 2022.03.17 |
---|---|
conda activate 오류 / conda activate 안됨 (0) | 2022.03.14 |
E: Unable to locate package nginx (0) | 2022.03.02 |
Mix Content 해결 ( ssl적용 후 발생 ) (0) | 2021.07.21 |
fatal: repository 'https://github.com/app/hello.git/' not found (0) | 2021.07.05 |