Exclude the Vite hot file from Docker builds and copy the SPOTA logo into the container so production deploys load compiled CSS and logo assets.
51 lines
1.9 KiB
Docker
51 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 link6.jpg /var/www/link6.jpg
|
|
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 public/hot \
|
|
&& 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"]
|