Create monorepo from known-good production state

This commit is contained in:
makearmy 2026-07-09 21:07:34 -04:00
commit c034824338
651 changed files with 120469 additions and 0 deletions

49
app/Dockerfile Normal file
View file

@ -0,0 +1,49 @@
# syntax=docker/dockerfile:1
FROM node:20-bookworm-slim AS deps
WORKDIR /app
# Install dependencies needed to build
COPY package.json package-lock.json ./
RUN npm ci
FROM node:20-bookworm-slim AS build
WORKDIR /app
# Reuse installed dependencies
COPY --from=deps /app/node_modules ./node_modules
# Copy app source
COPY . .
ENV NEXT_TELEMETRY_DISABLED=1
ENV NODE_ENV=production
# Build the app
RUN npm run build
# After building, remove dev dependencies so runtime stays smaller
RUN npm prune --omit=dev
FROM node:20-bookworm-slim AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
ENV HOME=/tmp
# Create writable directories
RUN mkdir -p /app/files /app/.next/cache /tmp && \
chown -R 1000:1000 /app /tmp
# Copy only runtime files
COPY --from=build --chown=1000:1000 /app/package.json ./package.json
COPY --from=build --chown=1000:1000 /app/next.config.js ./next.config.js
COPY --from=build --chown=1000:1000 /app/public ./public
COPY --from=build --chown=1000:1000 /app/.next ./.next
COPY --from=build --chown=1000:1000 /app/node_modules ./node_modules
USER 1000:1000
EXPOSE 3000
CMD ["node", "node_modules/next/dist/bin/next", "start", "-p", "3000", "-H", "0.0.0.0"]