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.
This commit is contained in:
Power BI Dev
2026-05-03 18:50:29 +07:00
parent 89ce9d30a7
commit dab8ea396b
107 changed files with 17544 additions and 20 deletions

48
Dockerfile.rebuild Normal file
View File

@@ -0,0 +1,48 @@
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"]