From 25728141c2f91481e401cbac5fbb0d8975a644de Mon Sep 17 00:00:00 2001 From: myrmidex Date: Thu, 19 Mar 2026 01:43:33 +0100 Subject: [PATCH] Fix Dockerfile Node version and case-sensitive import paths --- Dockerfile | 10 ++++++---- resources/js/components/TwoFactorRecoveryCodes.tsx | 2 +- resources/js/components/TwoFactorSetupModal.tsx | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0f6b9a3..c2567fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,14 @@ # Production Dockerfile with FrankenPHP FROM dunglas/frankenphp:latest-php8.3-alpine -# Install system dependencies +# Install system dependencies (except Node - Alpine's is too old for Vite 7) RUN apk add --no-cache \ - nodejs \ - npm \ git \ - mysql-client + mysql-client \ + curl + +# Install Node.js 20.19.0+ (Vite 7 requires 20.19+) +RUN curl -fsSL https://unofficial-builds.nodejs.org/download/release/v20.19.0/node-v20.19.0-linux-x64-musl.tar.xz | tar -xJ -C /usr/local --strip-components=1 # Install PHP extensions RUN install-php-extensions \ diff --git a/resources/js/components/TwoFactorRecoveryCodes.tsx b/resources/js/components/TwoFactorRecoveryCodes.tsx index 9182081..2829126 100644 --- a/resources/js/components/TwoFactorRecoveryCodes.tsx +++ b/resources/js/components/TwoFactorRecoveryCodes.tsx @@ -10,7 +10,7 @@ import { regenerateRecoveryCodes } from '@/routes/two-factor'; import { Form } from '@inertiajs/react'; import { Eye, EyeOff, LockKeyhole, RefreshCw } from 'lucide-react'; import { useCallback, useEffect, useRef, useState } from 'react'; -import AlertError from './alert-error'; +import AlertError from './AlertError'; interface TwoFactorRecoveryCodesProps { recoveryCodesList: string[]; diff --git a/resources/js/components/TwoFactorSetupModal.tsx b/resources/js/components/TwoFactorSetupModal.tsx index 7a4a5e6..52c6e49 100644 --- a/resources/js/components/TwoFactorSetupModal.tsx +++ b/resources/js/components/TwoFactorSetupModal.tsx @@ -19,7 +19,7 @@ import { Form } from '@inertiajs/react'; import { REGEXP_ONLY_DIGITS } from 'input-otp'; import { Check, Copy, ScanLine } from 'lucide-react'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import AlertError from './alert-error'; +import AlertError from './AlertError'; import { Spinner } from './ui/spinner'; function GridScanIcon() {