diff --git a/README.md b/README.md index b578205..7df0aad 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # Sucker -Check package.json for commands, I can't be bothered. +### Usage + +Pull this repostory and build with `npm run build`. You can start the server with `node ./.next/standalone/server.js` + +You can also build and run Sucker as a Docker container with `docker compose build` and `docker compose up`. ### Changelog diff --git a/docker-compose.yml b/docker-compose.yml index 5825ff5..4e67f7a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,4 @@ services: build: . image: sucker ports: - - "3000:3000" - environment: - NODE_ENV: production + - "3000:3000" \ No newline at end of file diff --git a/dockerfile b/dockerfile index 06ce342..5cfbad5 100644 --- a/dockerfile +++ b/dockerfile @@ -1,7 +1,5 @@ FROM node:22-alpine AS base - WORKDIR /app - FROM base AS deps COPY package.json package-lock.json* yarn.lock* pnpm-lock.yaml* ./ RUN \ @@ -12,23 +10,22 @@ RUN \ fi FROM base AS builder +WORKDIR /app + +ENV NODE_ENV=production + COPY --from=deps /app/node_modules ./node_modules COPY . . RUN npm run build -FROM base AS runner -ENV NODE_ENV=production - -RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs - +FROM node:22-alpine AS runner WORKDIR /app - +RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public -COPY --from=builder /app/.next ./.next -COPY --from=builder /app/node_modules ./node_modules -COPY --from=builder /app/package.json ./package.json USER nextjs EXPOSE 3000 -CMD ["npm", "start"] +CMD ["node", "server.js"] \ No newline at end of file diff --git a/next-env.d.ts b/next-env.d.ts index c4b7818..9edff1c 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..a28ddc8 --- /dev/null +++ b/next.config.js @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'standalone', + productionBrowserSourceMaps: false, +}; + +module.exports = nextConfig; \ No newline at end of file