From 9c1dfadbf04a1e31338221ebe754624fb1558dc0 Mon Sep 17 00:00:00 2001 From: jhpin2 Date: Thu, 10 Apr 2025 15:54:40 +0600 Subject: [PATCH] docker compose updated --- Dockerfile | 21 ++++++--------------- docker-compose.yml | 29 ++++++++--------------------- 2 files changed, 14 insertions(+), 36 deletions(-) diff --git a/Dockerfile b/Dockerfile index a234060..0216da2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,15 @@ -# Install dependencies only when needed -FROM node:18-alpine AS deps -WORKDIR /app - -COPY package.json package-lock.json* ./ -RUN npm install - -# Build the app +# Step 1: Build FROM node:18-alpine AS builder -WORKDIR /app -COPY --from=deps /app/node_modules ./node_modules +WORKDIR /app COPY . . +RUN npm install RUN npm run build -# Run the app -FROM node:18-alpine AS runner -WORKDIR /app +# Step 2: Run +FROM node:18-alpine -ENV NODE_ENV production -ENV PORT 3000 +WORKDIR /app COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next diff --git a/docker-compose.yml b/docker-compose.yml index 5fd2564..a9a8565 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,31 +2,18 @@ version: "3.8" services: webapp: + container_name: webapp build: context: . dockerfile: Dockerfile - expose: - - "3000" - labels: - - "traefik.enable=true" - - "traefik.http.routers.webapp-http.rule=Host(`planpostai.com`) || Host(`www.planpostai.com`)" - - "traefik.http.routers.webapp-http.entrypoints=http" - - "traefik.http.routers.webapp-http.middlewares=redirect-to-https" - - "traefik.http.routers.webapp-https.rule=Host(`planpostai.com`) || Host(`www.planpostai.com`)" - - "traefik.http.routers.webapp-https.entrypoints=https" - - "traefik.http.routers.webapp-https.tls=true" - - "traefik.http.routers.webapp-https.tls.certresolver=letsencrypt" - - "traefik.http.routers.webapp-https.middlewares=redirect-to-www,gzip" - - "traefik.http.services.webapp-service.loadbalancer.server.port=3000" - - "traefik.http.routers.webapp-https.service=webapp-service" - - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - - "traefik.http.middlewares.redirect-to-www.redirectregex.regex=^https?://(?:www\\.)?(.+)" - - "traefik.http.middlewares.redirect-to-www.redirectregex.replacement=https://www.$${1}" - - "traefik.http.middlewares.redirect-to-www.redirectregex.permanent=true" - - "traefik.http.middlewares.gzip.compress=true" + restart: always + ports: + - "3000:3000" networks: - - web + - coolify + environment: + - NODE_ENV=production networks: - web: + coolify: external: true