diff --git a/Dockerfile b/Dockerfile index 948bd41..2b874db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,36 @@ -FROM node:21-alpine +# Menggunakan image Node.js yang lebih ringan +FROM node:23.5.0-alpine -ENV PORT=4000 +# Mengatur port +ENV PORT 3000 +# Install pnpm secara global +RUN npm install -g pnpm + +# Membuat direktori aplikasi dan mengatur sebagai working directory WORKDIR /usr/src/app -# Install git (WAJIB untuk next build) -RUN apk add --no-cache git +# Menyalin file penting terlebih dahulu untuk caching +COPY package.json ./ -# Copy package files -COPY package*.json ./ +# Menyalin direktori ckeditor5 jika diperlukan +COPY vendor/ckeditor5 ./vendor/ckeditor5 -# Install dependencies (cukup SEKALI) -RUN npm install --legacy-peer-deps +# Menyalin env +COPY .env .env -# Copy source +# Install dependencies +RUN pnpm install +# RUN pnpm install --frozen-lockfile + +# Menyalin source code aplikasi COPY . . -# Build app -RUN npm run build +# Build aplikasi +RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm next build -EXPOSE 4000 +# Expose port untuk server +EXPOSE 3000 -# Run app -CMD ["npm", "run", "start"] +# Perintah untuk menjalankan aplikasi +CMD ["pnpm", "run", "start"] \ No newline at end of file diff --git a/app/(admin)/admin/dashboard/page.tsx b/app/(admin)/admin/dashboard/page.tsx index 3c31f0b..bc3c0bb 100644 --- a/app/(admin)/admin/dashboard/page.tsx +++ b/app/(admin)/admin/dashboard/page.tsx @@ -1,5 +1,4 @@ "use client"; - import DashboardContainer from "@/components/main/dashboard/dashboard-container"; import { motion } from "framer-motion"; import { useEffect, useState } from "react"; diff --git a/app/about/galery/page.tsx b/app/about/galery/page.tsx index 1cd08de..778cc33 100644 --- a/app/about/galery/page.tsx +++ b/app/about/galery/page.tsx @@ -1,16 +1,6 @@ -import Agent from "@/components/landing-page/agent"; -import BestAgent from "@/components/landing-page/best-agent"; import Footer from "@/components/landing-page/footer"; -import Galeri from "@/components/landing-page/galeri"; import GallerySection from "@/components/landing-page/galery"; -import HeaderAbout from "@/components/landing-page/header-about"; -import HeaderItems from "@/components/landing-page/header-item"; -import Help from "@/components/landing-page/help"; -import FormJaecoo from "@/components/landing-page/jaecoo-form"; import Navbar from "@/components/landing-page/navbar"; -import NearestLocation from "@/components/landing-page/nearest-location"; - -import Service from "@/components/landing-page/service"; export default function AboutPage() { return ( diff --git a/app/about/profile/page.tsx b/app/about/profile/page.tsx index d6a64e6..0bfc9e4 100644 --- a/app/about/profile/page.tsx +++ b/app/about/profile/page.tsx @@ -1,15 +1,7 @@ -import Agent from "@/components/landing-page/agent"; import BestAgent from "@/components/landing-page/best-agent"; import Footer from "@/components/landing-page/footer"; -import Galeri from "@/components/landing-page/galeri"; import HeaderAbout from "@/components/landing-page/header-about"; -import HeaderItems from "@/components/landing-page/header-item"; -import Help from "@/components/landing-page/help"; -import FormJaecoo from "@/components/landing-page/jaecoo-form"; import Navbar from "@/components/landing-page/navbar"; -import NearestLocation from "@/components/landing-page/nearest-location"; - -import Service from "@/components/landing-page/service"; export default function AboutPage() { return ( diff --git a/app/about/sosmed/page.tsx b/app/about/sosmed/page.tsx index 2c309af..cbe5fa9 100644 --- a/app/about/sosmed/page.tsx +++ b/app/about/sosmed/page.tsx @@ -1,16 +1,5 @@ -import Agent from "@/components/landing-page/agent"; -import BestAgent from "@/components/landing-page/best-agent"; import Footer from "@/components/landing-page/footer"; -import Galeri from "@/components/landing-page/galeri"; -import GallerySection from "@/components/landing-page/galery"; -import HeaderAbout from "@/components/landing-page/header-about"; -import HeaderItems from "@/components/landing-page/header-item"; -import Help from "@/components/landing-page/help"; -import FormJaecoo from "@/components/landing-page/jaecoo-form"; import Navbar from "@/components/landing-page/navbar"; -import NearestLocation from "@/components/landing-page/nearest-location"; - -import Service from "@/components/landing-page/service"; import SosmedSection from "@/components/landing-page/social-media"; export default function AboutPage() { diff --git a/app/customer-service/after-sales/page.tsx b/app/customer-service/after-sales/page.tsx index b970462..a66d7ec 100644 --- a/app/customer-service/after-sales/page.tsx +++ b/app/customer-service/after-sales/page.tsx @@ -1,7 +1,5 @@ import Footer from "@/components/landing-page/footer"; import HeaderAfterSalesServices from "@/components/landing-page/header-after-sales"; -import HeaderPriceInformation from "@/components/landing-page/header-price"; -import HeaderProduct from "@/components/landing-page/header-product-j7-awd"; import Navbar from "@/components/landing-page/navbar"; export default function AfterSalesServicesPage() { diff --git a/app/price/price-information/page.tsx b/app/price/price-information/page.tsx index bca5c24..465e2ed 100644 --- a/app/price/price-information/page.tsx +++ b/app/price/price-information/page.tsx @@ -1,6 +1,5 @@ import Footer from "@/components/landing-page/footer"; import HeaderPriceInformation from "@/components/landing-page/header-price"; -import HeaderProduct from "@/components/landing-page/header-product-j7-awd"; import Navbar from "@/components/landing-page/navbar"; export default function PriceInformationPage() { diff --git a/app/service/program-service/page.tsx b/app/service/program-service/page.tsx index 7777ecd..da88ff7 100644 --- a/app/service/program-service/page.tsx +++ b/app/service/program-service/page.tsx @@ -1,9 +1,6 @@ import Footer from "@/components/landing-page/footer"; -import HeaderPriceInformation from "@/components/landing-page/header-price"; -import HeaderProduct from "@/components/landing-page/header-product-j7-awd"; import Navbar from "@/components/landing-page/navbar"; import HeaderProgramSales from "@/components/landing-page/program-sales"; -import HeaderPromo from "@/components/landing-page/promo"; export default function ProgramSalesPage() { return ( diff --git a/components/landing-page/header.tsx b/components/landing-page/header.tsx index d28358b..9226d43 100644 --- a/components/landing-page/header.tsx +++ b/components/landing-page/header.tsx @@ -1,5 +1,4 @@ "use client"; - import Image from "next/image"; import { Carousel, diff --git a/components/main/dashboard/dashboard-container.tsx b/components/main/dashboard/dashboard-container.tsx index b09fc59..8ef22a0 100644 --- a/components/main/dashboard/dashboard-container.tsx +++ b/components/main/dashboard/dashboard-container.tsx @@ -1,5 +1,4 @@ "use client"; - import { DashboardCommentIcon, DashboardConnectIcon,