update qudo

This commit is contained in:
Anang Yusman 2026-02-19 13:35:31 +08:00
parent cd95a87b75
commit d055d84541
5 changed files with 87 additions and 6 deletions

30
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,30 @@
stages:
- build
- deploy
build-dev:
stage: build
when: on_success
only:
- main
image:
name: docker:25.0.3-cli
services:
- name: docker:25.0.3-dind
command: ["--insecure-registry=38.47.185.86:8900"]
script:
- docker logout
- docker login -u $DEPLOY_USERNAME -p $DEPLOY_TOKEN 38.47.185.86:8900
- docker build -t 38.47.185.86:8900/medols/web-qudo:dev .
- docker push 38.47.185.86:8900/medols/web-qudo:dev
auto-deploy:
stage: deploy
when: on_success
only:
- main
image: curlimages/curl:latest
services:
- docker:dind
script:
- curl --user admin:$JENKINS_PWD http://38.47.185.86:8080/job/auto-deploy-qudo/build?token=autodeploymedols

36
Dockerfile Normal file
View File

@ -0,0 +1,36 @@
# Menggunakan image Node.js yang lebih ringan
FROM node:23.5.0-alpine
# 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
# Menyalin file penting terlebih dahulu untuk caching
COPY package.json ./
# Menyalin direktori ckeditor5 jika diperlukan
COPY vendor/ckeditor5 ./vendor/ckeditor5
# Menyalin env
COPY .env .env
# Install dependencies
RUN pnpm install
# RUN pnpm install --frozen-lockfile
# Menyalin source code aplikasi
COPY . .
# Build aplikasi
RUN NODE_OPTIONS="--max-old-space-size=4096" pnpm next build
# Expose port untuk server
EXPOSE 3000
# Perintah untuk menjalankan aplikasi
CMD ["pnpm", "run", "start"]

View File

@ -5,12 +5,15 @@ import ContentLatest from "@/components/landing-page/content-latest";
import ContentPopular from "@/components/landing-page/content-popular";
import ContentCategory from "@/components/landing-page/category-content";
import FloatingMenuNews from "@/components/landing-page/floating-news";
import { Suspense } from "react";
export default function NewsAndServicesPage() {
return (
<div className="relative min-h-screen bg-white">
<FloatingMenuNews />
<NewsAndServicesHeader />
<Suspense fallback={null}>
<NewsAndServicesHeader />
</Suspense>
<ContentLatest />
<ContentPopular />
<ContentCategory />

View File

@ -1,5 +1,4 @@
"use client";
import Image from "next/image";
import { motion, AnimatePresence } from "framer-motion";
import { X, ChevronLeft, ChevronRight } from "lucide-react";

View File

@ -1,7 +1,20 @@
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
/* config options here */
/** @type {import('next').NextConfig} */
const nextConfig = {
images: {
domains: [
"mikulnews.com",
"dev.mikulnews.com",
"jaecoocihampelasbdg.com",
"dev.arahnegeri.com",
"qudo.id",
],
},
eslint: {
ignoreDuringBuilds: true,
},
experimental: {
optimizePackageImports: ["@ckeditor/ckeditor5-react", "react-apexcharts"],
},
};
export default nextConfig;