# image_files/Containerfile FROM localhost/base-server:latest MAINTAINER "birdhead" # 로케일 및 타임존 환경 변수 설정 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV TZ=Asia/Seoul ENV DEBIAN_FRONTEND=noninteractive # 단일 RUN 명령으로 레이어를 최소화하고 이미지 크기를 최적화 RUN \ apt-get update && \ # 로케일 및 필수 유틸리티 설치 apt-get install -y --no-install-recommends \ locales curl gnupg sudo lsb-release \ && \ # en_US.UTF-8 로케일 생성 echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \ locale-gen && \ \ # PostgreSQL 17 공식 저장소 추가 및 설치 curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg && \ echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ \ # pgAdmin4 공식 저장소 추가 curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg && \ echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && \ \ # 패키지 목록 다시 업데이트 후 설치 apt-get update && \ apt-get install -y --no-install-recommends \ postgresql-17 \ pgadmin4-web \ apache2 \ && \ # 설치 후 캐시 정리 apt-get clean && \ rm -rf /var/lib/apt/lists/* # entrypoint 스크립트 복사 및 실행 권한 부여 COPY entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh # 포트 노출 EXPOSE 5432 EXPOSE 80 # 컨테이너 시작 시 실행할 명령 지정 ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] CMD []