From 8f0eef61f17132021ad08bc5e0342766eced1e94 Mon Sep 17 00:00:00 2001 From: boutmoun123 Date: Wed, 29 Apr 2026 18:34:41 +0300 Subject: [PATCH] Add Docker deployment support --- .dockerignore | 23 +++++++++++++++++++++++ Dockerfile | 27 +++++++++++++++++++++++++++ next.config.mjs | 1 + 3 files changed, 51 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2543aa9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,23 @@ +.git +.gitignore +.next +.vscode +node_modules + +*.log +*.err + +_portfolio_pages +dev-3001.log +dev-3004.err +dev-3004.log +dev-debug.err.log +dev-debug.log +dev-direct.log +dev-live.log +dev-portfolio.err +dev-portfolio.log +dev-session.err.log +dev-session.log +dev.log +start.log diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ef3f366 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM node:20-alpine AS base +WORKDIR /app +ENV NEXT_TELEMETRY_DISABLED=1 + +FROM base AS deps +COPY package.json package-lock.json ./ +RUN npm ci + +FROM base AS builder +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN npm run build + +FROM node:20-alpine AS runner +WORKDIR /app +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 +ENV PORT=3000 +ENV HOSTNAME=0.0.0.0 + +COPY --from=builder /app/public ./public +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static + +EXPOSE 3000 + +CMD ["node", "server.js"] diff --git a/next.config.mjs b/next.config.mjs index 5f6b753..05ecbd6 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -3,6 +3,7 @@ const nextConfig = { reactStrictMode: true, poweredByHeader: false, compress: true, + output: "standalone", images: { formats: ["image/avif", "image/webp"], },