FROM php:8.2-cli

ENV COMPOSER_ALLOW_SUPERUSER=1
ENV APP_DIR=/var/www/html

RUN apt-get update && apt-get install -y \
    git \
    unzip \
    pkg-config \
    libcurl4-openssl-dev \
    libicu-dev \
    libjpeg62-turbo-dev \
    libwebp-dev \
    libfreetype6-dev \
    libzip-dev \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    libssl-dev \
    default-libmysqlclient-dev \
    sqlite3 \
    libsqlite3-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
    && docker-php-ext-install \
      bcmath \
      curl \
      exif \
      gd \
      intl \
      opcache \
      pcntl \
      pdo \
      pdo_mysql \
      pdo_sqlite \
      soap \
      sockets \
      xml \
      zip \
    && rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

WORKDIR ${APP_DIR}
COPY . ${APP_DIR}

RUN git config --global --add safe.directory ${APP_DIR}

RUN composer install --no-dev --optimize-autoloader --no-interaction --no-progress --prefer-dist

COPY infrastructure/runtime/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 8000

ENTRYPOINT ["/entrypoint.sh"]
