Dockerfile 942 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. # Install Composer
  16. COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
  17. # Set working directory
  18. WORKDIR /var/www/html
  19. # Copy backend files
  20. COPY backend/ .
  21. # Install PHP dependencies
  22. RUN composer install --no-dev --optimize-autoloader
  23. # Create uploads directory and set permissions
  24. RUN mkdir -p uploads && \
  25. chown -R www-data:www-data /var/www/html/uploads && \
  26. chmod -R 755 /var/www/html/uploads
  27. # Copy Apache configuration
  28. COPY docker/apache.conf /etc/apache2/sites-available/000-default.conf
  29. # Expose port
  30. EXPOSE 80
  31. # Start Apache
  32. CMD ["apache2-foreground"]