From a6e4e2cf6d762e8d6045587d3734fb9ff130825e Mon Sep 17 00:00:00 2001 From: AmirReza Jamali Date: Tue, 14 Oct 2025 16:41:47 +0330 Subject: [PATCH] feat(build): Migrate from static Nginx to Node.js server This commit transitions the application from being served as a static site via Nginx to a full Node.js application, likely Next.js. The Dockerfile has been completely rewritten to use a multi-stage build process: - A `builder` stage installs dependencies and builds the application. - A lean `runner` stage copies only the necessary production artifacts and dependencies to run the application server. The `.drone.yml` configuration has been updated to align with this new build process and to trigger builds on the `develop` branch in addition to `main`. --- .drone.yml | 13 +++++++------ Dockerfile | 33 +++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/.drone.yml b/.drone.yml index 6208b75..90fee42 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,9 +1,9 @@ ################################################################################ -# Landing +# web ################################################################################ kind: pipeline type: docker -name: (web landing) build form and push to artifactory +name: (landing) build form and push to artifactory steps: - name: tag @@ -19,11 +19,11 @@ steps: - echo "APP Version tags $APP_VERSION" - echo -n "$APP_VERSION" >> .tags - - name: build landing + - name: build landing image: plugins/docker settings: - # build_args: - # - BUILD_APP=landing + # build_args: + # - BUILD_APP=scraper username: cicd password: from_secret: REGISTRY_PASSWORD @@ -36,5 +36,6 @@ node: trigger: branch: - main + - develop event: - - custom \ No newline at end of file + - custom diff --git a/Dockerfile b/Dockerfile index 84b7c39..5d74b1c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,32 @@ -FROM nginx:alpine +FROM node:22.19.0 AS builder -COPY . /usr/share/nginx/html/ +WORKDIR /app +# RUN apk add --no-cache libc6-compat -EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +COPY package*.json ./ +RUN npm i + + +COPY . . + +RUN docker build . + +#--- + +FROM node:22.19.0 AS runner + +WORKDIR /app + + +COPY package*.json ./ +RUN npm ci --omit=dev + +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/package*.json ./ + +EXPOSE 3000 + +CMD ["npm", "start"]