From ae91966d8fadd5c5032319eb4d42516748743426 Mon Sep 17 00:00:00 2001 From: Jonathan Branan Date: Thu, 17 Oct 2024 12:36:30 -0500 Subject: [PATCH] yatta yatta yatta --- .dockerignore | 12 ++++++++++ Dockerfile | 60 +++++++---------------------------------------- app/tag-data.json | 2 +- 3 files changed, 21 insertions(+), 53 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6924434 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +.vscode +.husky +.devcontainer +.contentlayer +.github +faq +.dockerignore +.env.example +*git* +Dockerfile +LICENSE +README.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 13daf90..590cbaf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,61 +1,17 @@ -FROM node:22-alpine AS base +FROM node:22-alpine -# Install dependencies only when needed -FROM base AS deps -# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. +ENV NEXT_TELEMETRY_DISABLED=1 RUN apk add --no-cache libc6-compat WORKDIR /app -# Install dependencies based on the preferred package manager -COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* \node_modules ./ +COPY . /app RUN corepack enable -RUN if [ -f yarn.lock ]; then yarn; fi -RUN ls -la - - -# Rebuild the source code only when needed -FROM base AS builder -WORKDIR /app -COPY --from=deps ./node_modules ./node_modules -COPY . . - -ENV NEXT_TELEMETRY_DISABLED=1 - -RUN \ - if [ -f yarn.lock ]; then yarn build; \ - elif [ -f package-lock.json ]; then npm run build; \ - elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \ - else echo "Lockfile not found." && exit 1; \ - fi - -# Production image, copy all the files and run next -FROM base AS runner -WORKDIR /app +RUN yarn; +RUN yarn build; ENV NODE_ENV=production -# Uncomment the following line in case you want to disable telemetry during runtime. -ENV NEXT_TELEMETRY_DISABLED=1 - -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs - -COPY --from=builder /app/public ./public - -# Set the correct permission for prerender cache -RUN mkdir .next -RUN chown nextjs:nodejs .next - -# Automatically leverage output traces to reduce image size -# https://nextjs.org/docs/advanced-features/output-file-tracing -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static - -USER nextjs +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" EXPOSE 3000 -ENV PORT=3000 - -# server.js is created by next build from the standalone output -# https://nextjs.org/docs/pages/api-reference/next-config-js/output -ENV HOSTNAME="0.0.0.0" -CMD ["node", "server.js"] \ No newline at end of file +CMD ["yarn", "serve"] \ No newline at end of file diff --git a/app/tag-data.json b/app/tag-data.json index 77eae2f..13e19e5 100644 --- a/app/tag-data.json +++ b/app/tag-data.json @@ -1 +1 @@ -{"next-js":3,"tailwind":2,"guide":4,"feature":1,"yoyoyoy":1,"github":1,"writings":1,"book":1,"reflection":1,"markdown":1,"code":1,"features":1} \ No newline at end of file +{"cygnus":1,"self-hosted":1,"server":1} \ No newline at end of file