Files
spota-dev/Dockerfile.rebuild
Power BI Dev 80f3e52596 Fix production assets in rebuild image
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.
2026-05-03 19:38:35 +07:00

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"]