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 /var/www # Copy with explicit error handling COPY --chown=root:root . /var/www || 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"]