Files
jouwdriedee/Dockerfile
T
2026-10-31 13:24:24 +01:00

53 lines
1.4 KiB
Docker

# ==========================================
# Multi-stage Dockerfile voor Jouwdriedee.nl (Coolify / CasaOS)
# ==========================================
# 1. Frontend Build stage (Vite & Tailwind CSS)
FROM node:20-alpine AS node_builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 2. PHP Production runtime stage
FROM dunglas/frankenphp:php8.3-alpine AS runner
ENV SERVER_NAME="http://"
ENV APP_ENV="production"
ENV APP_DEBUG="false"
WORKDIR /app
# Installeer benodigde PHP extensies voor Laravel & SQLite/MySQL
RUN install-php-extensions \
pdo_mysql \
pdo_sqlite \
sqlite3 \
gd \
intl \
zip \
bcmath \
opcache
# Installeer Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Kopieer applicatiebestanden
COPY . /app
COPY --from=node_builder /app/public/build /app/public/build
# Installeer backend dependencies
RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
# Zorg voor de juiste opslagpermissies en database bestand
RUN mkdir -p /app/storage /app/bootstrap/cache /app/database \
&& touch /app/database/database.sqlite \
&& chown -R www-data:www-data /app/storage /app/bootstrap/cache /app/database \
&& chmod -R 775 /app/storage /app/bootstrap/cache /app/database
EXPOSE 80
CMD ["sh", "-c", "php artisan storage:link && php artisan migrate --force && frankenphp run --config /etc/caddy/Caddyfile"]