728x90
반응형
영문으로 설치해도 데이터베이스에 기본적으로 UTF8로 설치되기에 한글이 Insert/Update는 되는데, 로그 및 날짜포맷등이 en-US로 설치되기에 한국 설정에 맞지 않게 표시가 된다.
한글이 나오게 하려면 별도로 언어팩을 설치해야 하기 때문에 공식 이미지를 기반으로 별도 빌드해서 사용할 필요가 있다.
다음은 빌드 스크립트이다.
FROM postgres:16
# Locale 설정에 필요한 패키지 설치
RUN apt-get update && apt-get install -y locales openssh-client
# ko_KR.UTF-8 locale 생성
RUN locale-gen ko_KR.UTF-8
# ko_KR.UTF-8 locale 생성
RUN localedef -i ko_KR -f UTF-8 ko_KR.UTF-8
# 환경 변수 설정
ENV LANG=ko_KR.UTF-8
ENV LC_ALL=ko_KR.UTF-8
ENV TZ Asia/Seoul
# init-user-db.sh 스크립트 복사
#COPY backupdb.sh /opt/
COPY init-database.sh /docker-entrypoint-initdb.d/
# 스크립트에 실행 권한 부여
RUN chmod +x /docker-entrypoint-initdb.d/init-database.sh
RUN chown postgres:postgres /docker-entrypoint-initdb.d/init-database.sh
#RUN chmod +x /opt/backupdb.sh
#RUN cjpwm postgres:postgres /opt/backupdb.sh
# PostgreSQL 데이터 디렉토리 초기화
RUN mkdir -p /var/lib/postgresql/data
RUN chown -R postgres:postgres /var/lib/postgresql
# gosu 설치
RUN apt-get install -y gosu
# initdb 명령을 postgres 사용자로 실행
RUN gosu postgres /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/data
VOLUME /var/lib/postgresql/data
EXPOSE 5432
CMD ["postgres"]
init-database.sql은 인스턴스 설치 후 별도 사용자 생성이나 테이블 구성이라던가를 넣어주면 된다.
빌드 방법은 아래.. 인데 하기전에 docker hub에 로그인을 해야 한다. private은 5개까지 무료이고, 나머지는 모두 공개해야 한다. Docker Registry를 통해 로컬 Repogitory를 만들어서 우회할 수 있었는데 지금은 막혔을라나??
docker build -t enjoydev/pg-database16:1.0 .
docker push enjoydev/pg-database16:1.0
반응형
'써드파티 도구 > Docker' 카테고리의 다른 글
[2021.08] Docker 로그 지우기 (0) | 2021.08.06 |
---|---|
[2021.08] Docker 컨테이너 Save/Load (0) | 2021.08.06 |
[2021.08] Docker Remote API를 이용하는 방법 (0) | 2021.08.04 |
[2021.08] Docker Build를 하는데 자꾸 network bridge 관련 오류가 발생한다면... (0) | 2021.08.04 |
[2020.11] 다중호스트에서의 Docker 운용방식에 대한 고찰 (0) | 2020.11.12 |