45 lines
1.4 KiB
Docker
45 lines
1.4 KiB
Docker
FROM php:8.4-apache
|
|
|
|
# 타임존 (옵션)
|
|
RUN ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime \
|
|
&& echo Asia/Seoul > /etc/timezone
|
|
|
|
# mod_rewrite 활성화
|
|
RUN a2enmod rewrite
|
|
|
|
# 필수 라이브러리 + PHP 확장 설치 (intl, pdo_mysql, mysqli, gd, zip)
|
|
RUN apt-get update && apt-get install -y \
|
|
libicu-dev \
|
|
libpng-dev \
|
|
libjpeg-dev \
|
|
libfreetype6-dev \
|
|
libzip-dev \
|
|
zip \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install intl pdo pdo_mysql mysqli gd zip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# composer 바이너리 복사 (멀티스테이지)
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
# DocumentRoot 를 CI4 public 으로 변경
|
|
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
|
|
|
|
# 기본 vhost 의 DocumentRoot 만 변경
|
|
RUN sed -ri -e 's!DocumentRoot /var/www/html!DocumentRoot ${APACHE_DOCUMENT_ROOT}!g' \
|
|
/etc/apache2/sites-available/000-default.conf
|
|
|
|
# CI4 public 디렉터리에 .htaccess 허용 + 접근 허용
|
|
RUN printf "<Directory /var/www/html/public>\n\
|
|
AllowOverride All\n\
|
|
Require all granted\n\
|
|
</Directory>\n" > /etc/apache2/conf-available/ci4.conf \
|
|
&& a2enconf ci4
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
# writable 폴더 만들고 권한 부여
|
|
RUN mkdir -p /var/www/html/writable/upload/notice \
|
|
&& chown -R www-data:www-data /var/www/html/writable \
|
|
&& chmod -R 775 /var/www/html/writable
|