FROM php:8.3-apache

RUN apt-get update \
    && apt-get install -y --no-install-recommends cron libcurl4-openssl-dev libfreetype6-dev libjpeg62-turbo-dev libonig-dev libpng-dev libzip-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j"$(nproc)" curl exif gd mbstring zip \
    && a2enmod headers mime rewrite \
    && rm -rf /var/lib/apt/lists/*

COPY apache.conf /etc/apache2/sites-available/000-default.conf
COPY php.ini /usr/local/etc/php/conf.d/cup.ini
COPY entrypoint.sh /usr/local/bin/cup-entrypoint
COPY cup-cron.sh /usr/local/bin/cup-cron
COPY bootstrap/ /opt/cup-bootstrap/

RUN chmod 0755 /usr/local/bin/cup-entrypoint /usr/local/bin/cup-cron \
    && printf '* * * * * www-data /usr/local/bin/cup-cron minute\n17 3 * * * www-data /usr/local/bin/cup-cron daily\n' > /etc/cron.d/cup \
    && chmod 0644 /etc/cron.d/cup \
    && mkdir -p /srv/cup/www

WORKDIR /srv/cup/www
EXPOSE 80
ENTRYPOINT ["/usr/local/bin/cup-entrypoint"]
