39 lines
869 B
Docker
39 lines
869 B
Docker
FROM php:8.4-cli
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
unzip \
|
|
libzip-dev \
|
|
libxml2-dev \
|
|
libicu-dev \
|
|
libonig-dev \
|
|
default-mysql-client \
|
|
&& docker-php-ext-install zip \
|
|
&& docker-php-ext-install dom \
|
|
&& docker-php-ext-install intl \
|
|
&& docker-php-ext-install mbstring \
|
|
&& docker-php-ext-install pdo \
|
|
&& docker-php-ext-install pdo_mysql
|
|
|
|
# Install Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy composer files first for caching
|
|
COPY composer.json composer.lock* ./
|
|
|
|
# Install dependencies
|
|
RUN composer install --no-interaction --no-scripts --no-autoloader --prefer-dist
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Generate autoloader
|
|
RUN composer dump-autoload
|
|
|
|
# Default command
|
|
CMD ["composer", "test"]
|