2026-04-13 20:38:22 +02:00
|
|
|
FROM oven/bun:1-alpine AS assets
|
2026-04-13 11:56:50 +02:00
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
2026-04-13 20:38:22 +02:00
|
|
|
COPY package.json bun.lock ./
|
|
|
|
|
RUN bun install --frozen-lockfile
|
2026-04-13 11:56:50 +02:00
|
|
|
|
|
|
|
|
COPY vite.config.js ./
|
|
|
|
|
COPY assets/ assets/
|
|
|
|
|
COPY public/ public/
|
|
|
|
|
|
2026-04-13 20:38:22 +02:00
|
|
|
RUN bun run build && cp -r node_modules/@fortawesome/fontawesome-free/webfonts public/build/webfonts
|
2026-04-13 11:56:50 +02:00
|
|
|
|
|
|
|
|
FROM dunglas/frankenphp:latest
|
|
|
|
|
|
|
|
|
|
RUN install-php-extensions \
|
|
|
|
|
pdo_pgsql \
|
|
|
|
|
gd \
|
|
|
|
|
intl \
|
|
|
|
|
zip \
|
|
|
|
|
opcache \
|
|
|
|
|
apcu \
|
|
|
|
|
sodium
|
|
|
|
|
|
|
|
|
|
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
|
|
|
|
RUN printf '[opcache]\nopcache.enable=1\nopcache.memory_consumption=256\nopcache.max_accelerated_files=20000\nopcache.validate_timestamps=0\n' \
|
|
|
|
|
> "$PHP_INI_DIR/conf.d/opcache.ini"
|
|
|
|
|
|
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
|
|
|
|
|
|
ENV APP_ENV=prod
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
RUN composer install \
|
|
|
|
|
--no-dev \
|
|
|
|
|
--no-interaction \
|
|
|
|
|
--no-scripts \
|
|
|
|
|
--optimize-autoloader
|
|
|
|
|
|
|
|
|
|
COPY --from=assets /app/public/build ./public/build
|
|
|
|
|
|
|
|
|
|
RUN mkdir -p var/cache var/log var/sessions && \
|
|
|
|
|
chown -R www-data:www-data var/
|
|
|
|
|
|
|
|
|
|
COPY Caddyfile /etc/caddy/Caddyfile
|
|
|
|
|
COPY docker/entrypoint.sh /entrypoint.sh
|
|
|
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|