도커 컨테이너 기동시 리눅스 타임존 설정 및 postgres timezone 설정
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
postgres pgvector 도커 기동시 한글 설정
TZ: Asia/Seoul: 컨테이너의 시스템 레벨 타임존을Asia/Seoul로 설정합니다command: postgres -c "TimeZone=Asia/Seoul" -c "log_timezone=Asia/Seoul": PostgreSQL 서버 내부에서 사용하는TimeZone설정을 직접Asia/Seoul로 오버라이드합니다. 이는TZ환경 변수와 별개로 PostgreSQL 자체의 설정을 변경하는 것이라 더 확실합니다.
LC_ALL 환경 변수는 리눅스 및 유닉스 계열 시스템에서 모든 LC_로 시작하는 로케일 관련 환경 변수들을 한꺼번에 재정의하는 데 사용되는 특별한 환경 변수입니다.
LC_ 변수들이란?
리눅스 시스템은 사용자의 언어, 날짜/시간 형식, 통화 형식, 숫자 형식, 정렬 순서 등을 정의하기 위해 여러 LC_ 환경 변수를 사용합니다. 주요 LC_ 변수들은 다음과 같습니다:
LC_CTYPE: 문자 분류 및 변환 (예: 대소문자 변환, 문자열 인코딩)LC_NUMERIC: 숫자 형식 (예: 소수점 구분 기호, 천 단위 구분 기호)LC_TIME: 시간 및 날짜 형식 (예: 날짜 표시 순서, 요일 이름)LC_COLLATE: 문자열 정렬 순서LC_MONETARY: 통화 형식LC_MESSAGES: 프로그램 메시지(오류 메시지, 프롬프트 등)의 언어LC_PAPER: 종이 크기 형식LC_NAME: 이름 형식LC_ADDRESS: 주소 형식LC_TELEPHONE: 전화번호 형식LC_MEASUREMENT: 측정 단위LC_IDENTIFICATION: 로케일 관련 일반 정보
그리고 가장 기본적인 LANG 변수도 있습니다.
LANG:LC_변수들이 개별적으로 설정되지 않았을 때, 모든LC_변수의 기본값을 설정합니다.
LC_ALL의 역할
LC_ALL은 이 모든 LC_ 변수들보다 가장 높은 우선순위를 가집니다.
- 재정의 기능: 만약
LC_ALL이 설정되면,LANG과 모든 개별LC_CTYPE,LC_TIME등등의 모든LC_변수 설정을 무시하고LC_ALL의 값으로 강제로 설정합니다. - 디버깅/강제 설정: 특정 환경에서 로케일 관련 문제를 진단하거나, 모든 로케일 설정을 일관되게 강제하고 싶을 때 유용하게 사용될 수 있습니다.
예시
-
LANG=en_US.utf8만 설정:LC_CTYPE,LC_TIME등 개별LC_변수가 설정되어 있지 않으면 모두en_US.utf8를 따릅니다.
-
LANG=en_US.utf8이고LC_TIME=ko_KR.utf8인 경우:- 대부분은 영어 로케일을 따르지만, 시간 표시는 한국어 로케일을 따릅니다.
-
LC_ALL=ko_KR.utf8인 경우 (다른 변수들이 어떻게 설정되어 있든):LANG,LC_CTYPE,LC_NUMERIC,LC_TIME등 모든 로케일 관련 설정이 강제로ko_KR.utf8로 설정됩니다.
컨테이너 환경에서의 사용
Docker 컨테이너와 같이 격리된 환경에서 locale을 확실하게 설정하고 싶을 때 LC_ALL을 사용하는 경우가 있습니다. LANG만으로는 충분하지 않거나, 특정 LC_ 변수가 예기치 않게 다른 값으로 설정되어 문제를 일으킬 수 있는 경우 LC_ALL을 사용해 모든 것을 한 번에 ko_KR.utf8로 통일할 수 있습니다.
다만, 대부분의 경우 LANG=ko_KR.utf8만으로도 충분하며, TZ 환경 변수로 타임존을 별도로 설정하는 것이 일반적입니다. LC_ALL은 때때로 너무 강제적이라서 예상치 못한 부작용을 일으킬 수도 있으므로, 필요할 때만 사용하는 것이 좋습니다.
결론적으로, LC_ALL은 "모든 로케일 설정을 한 번에, 그리고 가장 높은 우선순위로 지정하는 마스터 스위치"라고 이해하시면 됩니다.
도커 컨테이너 기동
db 접속 타임존 확인
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글