- Laravel 12 with Sanctum authentication - API versioning with grazulex/laravel-apiroute - spatie/laravel-query-builder for filtering/sorting - spatie/laravel-data for DTOs - dedoc/scramble for auto API documentation - Pest PHP testing framework - Docker development environment - Standardized JSON API responses - Rate limiting and CORS configuration - Comprehensive README documentation
34 lines
722 B
Docker
34 lines
722 B
Docker
FROM php:8.3-fpm
|
|
|
|
# Arguments
|
|
ARG user=laravel
|
|
ARG uid=1000
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
curl \
|
|
libpng-dev \
|
|
libonig-dev \
|
|
libxml2-dev \
|
|
libzip-dev \
|
|
zip \
|
|
unzip \
|
|
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip \
|
|
&& pecl install redis \
|
|
&& docker-php-ext-enable redis \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# Create system user
|
|
RUN useradd -G www-data,root -u $uid -d /home/$user $user \
|
|
&& mkdir -p /home/$user/.composer \
|
|
&& chown -R $user:$user /home/$user
|
|
|
|
WORKDIR /var/www
|
|
|
|
USER $user
|