FROM debian:trixie-slim

# Add Sury's repository
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
        lsb-release && \
    curl -fsSLo /tmp/debsuryorg-archive-keyring.deb \
        https://packages.sury.org/debsuryorg-archive-keyring.deb && \
    apt-get install -y /tmp/debsuryorg-archive-keyring.deb && \
    rm /tmp/debsuryorg-archive-keyring.deb && \
    echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ trixie main" \
        > /etc/apt/sources.list.d/sury-php.list && \
    apt-get update && \
    rm -rf /var/lib/apt/lists/*

# Upgrade installed packages
RUN apt-get update && \
    apt-get upgrade -y && \
    rm -rf /var/lib/apt/lists/*

# Install PHP 7.4 and extensions
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        php7.4 \
        php7.4-bcmath \
        php7.4-fpm \
        php7.4-gd \
        php7.4-gmp \
        php7.4-intl \
        php7.4-mbstring \
        php7.4-mcrypt \
        php7.4-mysql \
        php7.4-opcache \
        php7.4-pgsql \
        php7.4-sqlite3 \
        php7.4-soap \
        php7.4-xml \
        php7.4-xmlrpc \
        php7.4-zip \
        php7.4-curl && \
    rm -rf /var/lib/apt/lists/*

# Install Composer
RUN curl -fsSL https://getcomposer.org/installer \
        -o /tmp/composer-setup.php && \
    php /tmp/composer-setup.php \
        --install-dir=/usr/bin \
        --filename=composer && \
    rm /tmp/composer-setup.php

# PHP configuration
COPY php.ini /etc/php/7.4/fpm/conf.d/50-setting.ini
COPY php-fpm.conf /etc/php/7.4/fpm/php-fpm.conf

VOLUME /application
WORKDIR /application
ENV HOME /application

EXPOSE 9000

CMD ["php-fpm7.4", "-F"]
