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 "\n\ AllowOverride All\n\ Require all granted\n\ \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