From adf94202b0b6e83a6eb0bb9dafd6fc8ff03cf74b Mon Sep 17 00:00:00 2001 From: Pushpak Chhajed Date: Sun, 12 Jan 2025 00:28:05 +0530 Subject: [PATCH] feat: add docker image --- Dockerfile | 67 ++++++++++++++++++++++++++++++++++ bun.lockb | Bin 311796 -> 312837 bytes docker/php/production.ini | 7 ++++ package.json | 1 + resources/js/app.js | 2 +- resources/views/app.blade.php | 2 +- 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 Dockerfile create mode 100644 docker/php/production.ini diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b1530d9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,67 @@ +# Stage 1: Frontend Assets build +FROM oven/bun:1-slim AS node-builder +WORKDIR /app +COPY . . +RUN bun install --frozen-lockfile +RUN bun run build + +# Stage 2: Final image +FROM dunglas/frankenphp:1.4.0-php8.3-alpine AS base + +# Create required directories with proper permissions +RUN mkdir -p /data/caddy /config/caddy /home/.local/share/caddy && \ + chmod -R 755 /data /config /home/.local && \ + # Add non-root user + addgroup -g 1000 appgroup && \ + adduser -u 1000 -G appgroup -h /app -s /bin/sh -D appuser && \ + # Give ownership of Caddy directories + chown -R appuser:appgroup /data /config /home/.local + +# Set Caddy environment variables +ENV XDG_CONFIG_HOME=/config \ + XDG_DATA_HOME=/data + +# Install composer and PHP extensions +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer +RUN install-php-extensions \ + pcntl \ + intl \ + pdo_mysql \ + zip \ + bcmath && \ + # Cleanup + rm -rf /tmp/* /var/cache/apk/* + +# Environment configuration +ENV APP_ENV=production \ + APP_DEBUG=false \ + OCTANE_SERVER=frankenphp + +# Configure PHP for production +COPY docker/php/production.ini $PHP_INI_DIR/conf.d/ +RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" + +# Set up application +WORKDIR /app +COPY --chown=appuser:appgroup . . +COPY --from=node-builder --chown=appuser:appgroup /app/public/build/ ./public/build/ + +# Install dependencies and optimize +RUN composer install --prefer-dist --optimize-autoloader && \ + php artisan optimize && \ + php artisan view:cache && \ + php artisan config:cache && \ + php artisan route:cache && \ + php artisan event:cache && \ + # Set proper permissions + chown -R appuser:appgroup /app && \ + chmod -R 755 storage bootstrap/cache && \ + rm -rf tests node_modules docker .git* && \ + composer clear-cache + +USER appuser + +# Expose port +EXPOSE 8000 + +ENTRYPOINT ["php", "artisan", "octane:start", "--host=0.0.0.0"] diff --git a/bun.lockb b/bun.lockb index 9bb7a184cf4c8ec33ab9dbe0408cffbfb69ec0af..20e0a48c4174b3469ce9080ba99cc01f23f4beeb 100755 GIT binary patch delta 58160 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 VC4+JZc`zUIs-7M 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 diff --git a/docker/php/production.ini b/docker/php/production.ini new file mode 100644 index 0000000..07c48ee --- /dev/null +++ b/docker/php/production.ini @@ -0,0 +1,7 @@ +; Production PHP configuration +memory_limit = 256M +max_execution_time = 60 +opcache.enable=0 +opcache.enable_cli=0 +realpath_cache_size=4096K +realpath_cache_ttl=600 diff --git a/package.json b/package.json index d08ca6f..ceb49fd 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "vite": "~6.0.3", "vue": "^3.5.13", "vue-sonner": "^1.3.0", + "ziggy-js": "^2.4.2", "zod": "^3.23.8" }, "devDependencies": { diff --git a/resources/js/app.js b/resources/js/app.js index 452ffa8..8329332 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -2,7 +2,7 @@ import { createInertiaApp } from '@inertiajs/vue3' import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers' import { createApp, h } from 'vue' -import { ZiggyVue } from '../../vendor/tightenco/ziggy' +import { ZiggyVue } from 'ziggy-js'; import './bootstrap' import '../css/app.css' diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index fb1becf..102225a 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -59,7 +59,7 @@ - + @routes