byos_laravel/Dockerfile
2025-04-02 19:58:55 +02:00

46 lines
1.2 KiB
Docker

########################
# Base Image
########################
FROM bnussbau/serversideup-php:8.3-fpm-nginx-alpine-imagick-chromium AS base
ENV AUTORUN_ENABLED="true"
# Switch to the root user so we can do root things
USER root
# Set the working directory
WORKDIR /var/www/html
# Copy the application files
COPY --chown=www-data:www-data . /var/www/html
COPY --chown=www-data:www-data .env.example .env
# Install the composer dependencies
RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
########################
# Assets Image
########################
FROM node:22-alpine AS assets
# Copy the application
COPY --from=base /var/www/html /app
# Set the working directory
WORKDIR /app
# Install the node dependencies and build the assets
RUN npm ci --no-audit \
&& npm run build
########################
# Production Image
########################
FROM base AS production
# Copy the assets from the assets image
COPY --chown=www-data:www-data --from=assets /app/public/build /var/www/html/public/build
COPY --chown=www-data:www-data --from=assets /app/node_modules /var/www/html/node_modules
# Drop back to the www-data user
USER www-data