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:
48
Dockerfile.rebuild
Normal file
48
Dockerfile.rebuild
Normal 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"]
|
||||
Reference in New Issue
Block a user