Point Docker and Coolify compose to the Laravel rebuild app so mahasiswa, dosen, and admin flows are served from the new Laravel public entrypoint.
49 lines
1.9 KiB
Docker
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"]
|