| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # syntax=docker/dockerfile:1.7
- # ---------- node stage: build Tailwind + JS bundle ----------
- FROM node:20-alpine AS assets
- WORKDIR /app
- COPY package.json package-lock.json* ./
- RUN npm install --no-audit --no-fund
- COPY tailwind.config.js postcss.config.js ./
- COPY resources ./resources
- RUN mkdir -p public/assets \
- && npx tailwindcss -i resources/css/app.css -o public/assets/app.css --minify \
- && npx esbuild resources/js/app.js --bundle --minify --target=es2020 --outfile=public/assets/app.js
- # ---------- composer stage ----------
- FROM composer:2 AS deps
- WORKDIR /app
- COPY composer.json composer.lock* ./
- RUN composer install --no-dev --no-interaction --no-scripts --no-progress --optimize-autoloader
- # ---------- runtime ----------
- FROM dunglas/frankenphp:1-php8.3-alpine
- ENV PHP_INI_SCAN_DIR=/usr/local/etc/php/conf.d
- RUN apk add --no-cache \
- icu-dev \
- oniguruma-dev \
- bash \
- && install-php-extensions \
- mbstring \
- intl \
- opcache
- WORKDIR /app
- COPY --from=deps /app/vendor ./vendor
- COPY . ./
- COPY --from=assets /app/public/assets ./public/assets
- COPY docker/Caddyfile /etc/Caddyfile
- COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
- RUN chmod +x /usr/local/bin/entrypoint.sh
- EXPOSE 8080
- ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
- CMD ["ui"]
|