55 lines
1.9 KiB
Plaintext
55 lines
1.9 KiB
Plaintext
# 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 []
|
|
|