FROM php:7.3-apache-buster # Debian Buster EOL olduğu için repo adreslerini archive'a taşıyoruz RUN sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list \ && sed -i 's|http://security.debian.org/debian-security|http://archive.debian.org/debian-security|g' /etc/apt/sources.list \ && sed -i '/buster-updates/d' /etc/apt/sources.list \ && apt-get update # Sistem paketleri + PHP extension kurulumu RUN apt-get install -y --no-install-recommends \ git \ unzip \ zip \ nano \ curl \ libzip-dev \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libxml2-dev \ zlib1g-dev \ libonig-dev \ && docker-php-ext-configure gd \ --with-freetype-dir=/usr/include/ \ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install \ pdo \ pdo_mysql \ gd \ zip \ mbstring \ exif \ && rm -rf /var/lib/apt/lists/* # Composer 2.2 kurulumu - PHP 7.3 için güvenli sürüm RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && php composer-setup.php --2.2 --install-dir=/usr/local/bin --filename=composer \ && php -r "unlink('composer-setup.php');" # Apache modları RUN a2enmod rewrite # Apache VirtualHost ayarı COPY vhost.conf /etc/apache2/sites-available/000-default.conf WORKDIR /var/www/html # Laravel/Lumen gerekli klasörleri RUN mkdir -p \ /var/www/html/storage/logs \ /var/www/html/storage/framework/cache \ /var/www/html/storage/framework/sessions \ /var/www/html/storage/framework/views \ /var/www/html/bootstrap/cache \ /home/uploads \ && chown -R www-data:www-data \ /var/www/html/storage \ /var/www/html/bootstrap/cache \ /home/uploads \ && chmod -R 775 \ /var/www/html/storage \ /var/www/html/bootstrap/cache \ /home/uploads # Runtime permission düzeltme scripti COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["docker-entrypoint.sh"] CMD ["apache2-foreground"]