static export + nginx, drop runtime server
Some checks failed
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Failing after 7s

~800MiB -> ~5MiB RAM
This commit is contained in:
2026-08-08 15:51:24 +02:00
parent 0f207f4cdd
commit 369cd75bfe
4 changed files with 37 additions and 25 deletions

5
.dockerignore Normal file
View File

@@ -0,0 +1,5 @@
node_modules
.next
out
.git
.superpowers

View File

@@ -1,31 +1,14 @@
FROM oven/bun:1 AS base
FROM oven/bun:1 AS build
WORKDIR /app
FROM base AS install
RUN mkdir -p /temp/dev
COPY package.json bun.lock /temp/dev/
RUN cd /temp/dev && bun install --frozen-lockfile
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile
RUN mkdir -p /temp/prod
COPY package.json bun.lock /temp/prod/
RUN cd /temp/prod && bun install --frozen-lockfile --production
FROM base AS prerelease
COPY --from=install /temp/dev/node_modules node_modules
COPY . .
ENV NODE_ENV=production
RUN bun run build
FROM base AS release
COPY --from=prerelease /app/public ./public
COPY --from=prerelease /app/.next ./.next
COPY --from=prerelease /app/node_modules ./node_modules
COPY --from=prerelease /app/package.json ./package.json
USER bun
EXPOSE 3000/tcp
CMD ["bun", "run", "start"]
FROM nginx:alpine
COPY --from=build /app/out /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

View File

@@ -1,7 +1,10 @@
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
/* config options here */
output: "export",
images: {
unoptimized: true,
},
};
export default nextConfig;

21
nginx.conf Normal file
View File

@@ -0,0 +1,21 @@
server {
listen 80;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri.html $uri/ =404;
}
location /_next/static/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
location /images/ {
expires 30d;
add_header Cache-Control "public";
}
error_page 404 /404.html;
}