Update file Dockerfile

This commit is contained in:
Muhammad Alfin Afif Al Farizi Farham 2026-02-04 10:08:56 +07:00
parent 151ea8d58a
commit 606076729b

View File

@ -1,20 +1,36 @@
### =============================== ### ===============================
### STAGE 1: FRONTEND BUILD ### STAGE 1: COMPOSER
### ===============================
FROM composer:latest AS composer
WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader --no-interaction
### ===============================
### STAGE 2: FRONTEND BUILD
### =============================== ### ===============================
FROM node:20-alpine AS frontend FROM node:20-alpine AS frontend
WORKDIR /app WORKDIR /app
# COPY vendor dari composer stage
COPY --from=composer /app/vendor vendor
COPY package*.json ./ COPY package*.json ./
RUN npm install RUN npm install
COPY resources resources COPY resources resources
COPY vite.config.* . COPY vite.config.* .
COPY tailwind.config.* .
COPY postcss.config.* .
RUN npm run build RUN npm run build
### =============================== ### ===============================
### STAGE 2: PHP / LARAVEL ### STAGE 3: PHP / RUNTIME
### =============================== ### ===============================
FROM dunglas/frankenphp:1-php8.3 FROM dunglas/frankenphp:1-php8.3
@ -23,30 +39,19 @@ WORKDIR /app
# System deps # System deps
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libpng-dev \ libpng-dev libjpeg-dev libfreetype6-dev \
libjpeg-dev \ libzip-dev libicu-dev pkg-config \
libfreetype6-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \
libzip-dev \ && docker-php-ext-install gd pdo pdo_mysql zip bcmath intl exif \
libicu-dev \ && rm -rf /var/lib/apt/lists/*
pkg-config \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install \
gd pdo pdo_mysql zip bcmath intl exif \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Composer # Copy app
COPY composer.json composer.lock ./
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN composer install --no-dev --optimize-autoloader --no-interaction
# App source
COPY . . COPY . .
# COPY HASIL VITE BUILD # Copy vendor
COPY --from=composer /app/vendor vendor
# Copy Vite build
COPY --from=frontend /app/public/build public/build COPY --from=frontend /app/public/build public/build
RUN php artisan config:clear \ RUN php artisan optimize:clear
&& php artisan view:clear \
&& php artisan route:clear