51 lines
1.4 KiB
Docker
51 lines
1.4 KiB
Docker
FROM php:8.2-fpm-alpine
|
|
|
|
# Install system dependencies
|
|
RUN apk add --no-cache \
|
|
git curl unzip icu-dev libzip-dev libpng-dev libjpeg-turbo-dev \
|
|
freetype-dev libxml2-dev oniguruma-dev linux-headers \
|
|
imagemagick-dev $PHPIZE_DEPS caddy \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install -j$(nproc) \
|
|
bcmath ctype fileinfo gd intl mbstring \
|
|
pdo pdo_mysql opcache pcntl sockets zip xml \
|
|
&& pecl install redis imagick \
|
|
&& docker-php-ext-enable redis imagick \
|
|
&& apk del $PHPIZE_DEPS linux-headers \
|
|
&& rm -rf /tmp/*
|
|
|
|
# Install Composer
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
# Set working directory
|
|
WORKDIR /var/www/html
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Install Laravel dependencies
|
|
RUN php /usr/bin/composer install \
|
|
--no-dev --optimize-autoloader --no-interaction --no-progress \
|
|
--no-scripts --ignore-platform-req=ext-ssh2
|
|
|
|
# Create required directories and set permissions
|
|
RUN mkdir -p \
|
|
storage/framework/sessions \
|
|
storage/framework/views \
|
|
storage/framework/cache/data \
|
|
storage/logs \
|
|
bootstrap/cache \
|
|
&& chown -R www-data:www-data storage bootstrap/cache \
|
|
&& chmod -R 775 storage bootstrap/cache
|
|
|
|
# Caddy config for Laravel
|
|
COPY docker/Caddyfile /etc/caddy/Caddyfile
|
|
|
|
# Entrypoint
|
|
COPY docker/entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
EXPOSE 8088
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|