Dockerfile 967 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # Backend Dockerfile
  2. FROM php:8.1-apache
  3. # Install system dependencies
  4. RUN apt-get update && apt-get install -y \
  5. libzip-dev \
  6. libpng-dev \
  7. libjpeg-dev \
  8. libfreetype6-dev \
  9. zip \
  10. unzip \
  11. curl \
  12. && docker-php-ext-configure gd --with-freetype --with-jpeg \
  13. && docker-php-ext-install gd zip pdo_mysql \
  14. && a2enmod rewrite \
  15. && a2enmod headers
  16. # Install Composer
  17. COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
  18. # Set working directory
  19. WORKDIR /var/www/html
  20. # Copy backend files
  21. COPY backend/ .
  22. # Install PHP dependencies
  23. RUN composer install --no-dev --optimize-autoloader
  24. # Create uploads directory and set permissions
  25. RUN mkdir -p uploads && \
  26. chown -R www-data:www-data /var/www/html/uploads && \
  27. chmod -R 755 /var/www/html/uploads
  28. # Copy Apache configuration
  29. COPY docker/apache.conf /etc/apache2/sites-available/000-default.conf
  30. # Expose port
  31. EXPOSE 80
  32. # Start Apache
  33. CMD ["apache2-foreground"]