Files
spota-dev/Dockerfile.rebuild
Power BI Dev dab8ea396b Deploy Laravel rebuild via Coolify
Point Docker and Coolify compose to the Laravel rebuild app so mahasiswa, dosen, and admin flows are served from the new Laravel public entrypoint.
2026-05-03 18:50:29 +07:00

49 lines
1.9 KiB
Docker

FROM node:22-bookworm AS assets
WORKDIR /app
COPY rebuild/package*.json ./
RUN npm ci --ignore-scripts
COPY rebuild/ ./
RUN npm run build
FROM composer:2 AS vendor
WORKDIR /app
COPY rebuild/composer.json rebuild/composer.lock ./
RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader --no-scripts
COPY rebuild/ ./
RUN composer dump-autoload --optimize --no-scripts
FROM php:8.4-apache
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libonig-dev \
libpng-dev \
libzip-dev \
unzip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j"$(nproc)" pdo_mysql mysqli gd zip mbstring exif \
&& a2enmod rewrite headers \
&& rm -rf /var/lib/apt/lists/*
COPY docker/php.ini /usr/local/etc/php/conf.d/spota.ini
COPY docker/apache-laravel-vhost.conf /etc/apache2/sites-available/000-default.conf
WORKDIR /var/www/html
COPY rebuild/ /var/www/html
COPY --from=vendor /app/vendor /var/www/html/vendor
COPY --from=assets /app/public/build /var/www/html/public/build
COPY docker/laravel-entrypoint.sh /usr/local/bin/laravel-entrypoint
RUN chmod +x /usr/local/bin/laravel-entrypoint \
&& mkdir -p storage/app storage/framework/cache storage/framework/sessions storage/framework/views storage/logs bootstrap/cache public/build \
&& rm -f bootstrap/cache/*.php \
&& APP_ENV=production APP_DEBUG=false APP_KEY=base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=spota_spotadb DB_USERNAME=spota_user DB_PASSWORD=spota_password SESSION_DRIVER=file CACHE_STORE=file QUEUE_CONNECTION=sync php artisan package:discover --ansi \
&& chown -R www-data:www-data storage bootstrap/cache public/build
ENTRYPOINT ["laravel-entrypoint"]
CMD ["apache2-foreground"]