FROM php:8.2-apache ENV DEBIAN_FRONTEND=noninteractive # pdo_sqlite / zip / gd(PhpSpreadsheet 需要 gd) RUN apt-get update \ && apt-get install -y --no-install-recommends \ libsqlite3-dev \ libzip-dev \ libpng-dev \ libjpeg62-turbo-dev \ libfreetype6-dev \ unzip \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install pdo_sqlite zip gd \ && a2enmod rewrite headers \ && rm -rf /var/lib/apt/lists/* COPY --from=composer:2 /usr/bin/composer /usr/bin/composer WORKDIR /var/www/html COPY docker/apache-vhost.conf /etc/apache2/sites-available/000-default.conf COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh COPY composer.json ./ RUN composer install --no-dev --prefer-dist --no-interaction --optimize-autoloader COPY app ./app COPY public ./public COPY data ./data COPY uploads ./uploads RUN chown -R www-data:www-data /var/www/html/data /var/www/html/uploads \ && chmod -R 775 /var/www/html/data /var/www/html/uploads EXPOSE 80 ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] CMD ["apache2-foreground"]