FROM docker.io/alpine:3.21

RUN apk add --no-cache \
    php84 \
    php84-fpm \
    php84-pdo_mysql \
    php84-mbstring \
    php84-exif \
    php84-pcntl \
    php84-bcmath \
    php84-gd \
    php84-zip \
    php84-intl \
    php84-curl \
    php84-tokenizer \
    php84-xml \
    php84-xmlwriter \
    php84-session \
    git \
    curl

RUN ln -sf /usr/bin/php84 /usr/bin/php

WORKDIR /app

# Copy with explicit error handling
COPY --chown=root:root . /app || true

COPY --from=docker.io/composer:latest /usr/bin/composer /usr/bin/composer

RUN rm -rf /app/.circleci /app/.github 2>/dev/null || true && \
    chmod -R 775 /app/storage /app/bootstrap/cache 2>/dev/null || true

EXPOSE 8000

CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"]