initial commit
This commit is contained in:
commit
e8c3f9862a
193 files changed
+29795
No files matched your search
+62
@@ -0,0 +1,62 @@
|
||||
# ---------- Stage 1: build the client (resources/js -> public/build) ----------
|
||||
FROM node:22-alpine AS client
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci --no-audit --no-fund
|
||||
|
||||
COPY vite.config.js ./
|
||||
COPY resources ./resources
|
||||
|
||||
RUN npm run build
|
||||
|
||||
# ---------- Stage 2: Laravel runtime (php-fpm / reverb / simulate) ----------
|
||||
FROM php:8.5-fpm-alpine AS app
|
||||
|
||||
WORKDIR /var/www/html
|
||||
|
||||
RUN apk add --no-cache linux-headers libzip-dev oniguruma-dev sqlite-dev && \
|
||||
docker-php-ext-install -j"$(nproc)" mbstring sockets pcntl bcmath pdo_sqlite && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
# opcache defaults for single-container deployments
|
||||
RUN { \
|
||||
echo 'opcache.enable=1'; \
|
||||
echo 'opcache.validate_timestamps=0'; \
|
||||
echo 'opcache.memory_consumption=64'; \
|
||||
echo 'opcache.interned_strings_buffer=16'; \
|
||||
echo 'opcache.max_accelerated_files=10000'; \
|
||||
} > /usr/local/etc/php/conf.d/zz-opcache.ini
|
||||
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||
|
||||
COPY composer.json composer.lock ./
|
||||
RUN composer install \
|
||||
--no-dev \
|
||||
--no-interaction \
|
||||
--prefer-dist \
|
||||
--no-progress \
|
||||
--no-scripts \
|
||||
--no-autoloader
|
||||
|
||||
COPY --from=client /build/public/build ./public/build
|
||||
COPY . .
|
||||
|
||||
RUN rm -f bootstrap/cache/services.php bootstrap/cache/packages.php bootstrap/cache/config.php && \
|
||||
composer dump-autoload --optimize --no-scripts --no-interaction && \
|
||||
chown -R www-data:www-data storage bootstrap/cache && \
|
||||
chmod -R ug+rw storage bootstrap/cache
|
||||
|
||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||
|
||||
STOPSIGNAL SIGTERM
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||
CMD ["php-fpm", "-F"]
|
||||
|
||||
# ---------- Stage 3: nginx serving public/ + proxying /app to Reverb ----------
|
||||
FROM nginx:alpine AS web
|
||||
|
||||
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
|
||||
COPY --from=app /var/www/html/public /var/www/html/public
|
||||
Reference in new issue
Block a user