imnya.ng/Dockerfile
imnyang c90543f12f chore(deps): upgrade Next/React ecosystem, sync lockfile, and add CI/docker configs
- bump next to 16.0.0, react/react-dom to 19.2.0 and update related deps (react-day-picker, react-hook-form, zod, lightningcss, scheduler, typescript, @types/*, tailwind tooling, etc.) in package.json and bun.lock
- add overrides for @types/react and @types/react-dom
- remove --turbopack flags from package.json scripts and configure turbopack root in next.config.ts
- tighten tsconfig (jsx -> react-jsx, include extra .next dev types, formatting)
- add GitHub Actions workflow for Docker build/push (.github/workflows/main.yml)
- add Dockerfile and compose.yml for building/running containerized app
2025-10-23 20:17:55 +09:00

41 lines
880 B
Docker

# syntax=docker.io/docker/dockerfile:1
FROM oven/bun:latest AS base
# Install dependencies only when needed
FROM base AS deps
WORKDIR /app
COPY package.json bun.lockb* package-lock.json* pnpm-lock.yaml* .npmrc* ./
RUN bun install --frozen-lockfile
# Rebuild the source code only when needed
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN bun run build
# Production image, copy all the files and run next
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT=3000
ENV HOSTNAME="0.0.0.0"
CMD ["bun", "run", "server.js"]