/home/suroeste/public_html/payments.transportessuroeste.com/docker/php
Edit: /home/suroeste/public_html/payments.transportessuroeste.com/docker/php/Dockerfile (2987B)
# ============================================================================
# TRANSPORTES SUROESTE - PHP-FPM Dockerfile
# ============================================================================
# Multi-stage build for optimized production image
# ============================================================================
# Stage 1: Composer dependencies
FROM composer:2.7 AS composer-deps
WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist
# Stage 2: Production image
FROM php:8.2-fpm-alpine3.19
LABEL maintainer="Transportes Suroeste
"
LABEL description="Payment Gateway API - PHP-FPM"
LABEL version="1.0.0"
# Install system dependencies
RUN apk add --no-cache \
icu-libs \
libzip \
libpng \
libjpeg-turbo \
freetype \
oniguruma \
curl \
&& apk add --no-cache --virtual .build-deps \
icu-dev \
libzip-dev \
libpng-dev \
libjpeg-turbo-dev \
freetype-dev \
oniguruma-dev \
linux-headers \
$PHPIZE_DEPS
# Install PHP extensions
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) \
pdo_mysql \
mbstring \
gd \
intl \
zip \
opcache \
pcntl \
&& pecl install redis-6.0.2 \
&& docker-php-ext-enable redis \
&& apk del .build-deps \
&& rm -rf /tmp/pear /var/cache/apk/*
# Copy custom PHP configuration
COPY docker/php/php.ini /usr/local/etc/php/php.ini
COPY docker/php/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf
# Set working directory
WORKDIR /var/www/html
# Copy composer dependencies from build stage
COPY --from=composer-deps /app/vendor ./vendor
# Copy application source
COPY config/ ./config/
COPY public/ ./public/
COPY src/ ./src/
COPY sql/ ./sql/
COPY composer.json composer.lock ./
# Generate optimized autoloader
COPY --from=composer:2.7 /usr/bin/composer /usr/bin/composer
RUN composer dump-autoload --optimize --classmap-authoritative --no-dev \
&& rm -f /usr/bin/composer
# Create logs directory
RUN mkdir -p /var/www/html/logs
# Set permissions - non-root user
RUN chown -R www-data:www-data /var/www/html \
&& chmod -R 755 /var/www/html \
&& chmod -R 775 /var/www/html/logs \
&& chmod 640 /var/www/html/config/config.php
# Healthcheck
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD php-fpm-healthcheck || exit 1
# Install healthcheck script
RUN echo '#!/bin/sh' > /usr/local/bin/php-fpm-healthcheck \
&& echo 'SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping REQUEST_METHOD=GET cgi-fcgi -bind -connect 127.0.0.1:9000 2>/dev/null | grep -q pong' >> /usr/local/bin/php-fpm-healthcheck \
&& chmod +x /usr/local/bin/php-fpm-healthcheck \
&& apk add --no-cache fcgi
# Switch to non-root user
USER www-data
EXPOSE 9000
CMD ["php-fpm"]