Created
July 8, 2024 03:17
-
-
Save bogordesaincom/4637d688d4bdb8fdab40bffdbca21df5 to your computer and use it in GitHub Desktop.
Nextjs Bun
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM oven/bun AS base | |
# Install dependencies only when needed | |
FROM base AS deps | |
WORKDIR /app | |
# Install dependencies | |
COPY package.json bun.lockb ./ | |
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 . . | |
# Next.js collects completely anonymous telemetry data about general usage. | |
# Learn more here: https://nextjs.org/telemetry | |
# Disable telemetry during the build | |
ENV NEXT_TELEMETRY_DISABLED 1 | |
RUN bun run build | |
# Production image, copy all the files and run next | |
FROM base AS runner | |
WORKDIR /app | |
ENV NODE_ENV production | |
# Disable telemetry | |
ENV NEXT_TELEMETRY_DISABLED 1 | |
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:bun .next | |
# Automatically leverage output traces to reduce image size | |
# https://nextjs.org/docs/advanced-features/output-file-tracing | |
COPY --from=builder --chown=nextjs:bun /app/.next/standalone ./ | |
COPY --from=builder --chown=nextjs:bun /app/.next/static ./.next/static | |
USER nextjs | |
EXPOSE 3000 | |
ENV PORT 3000 | |
# Set hostname to localhost | |
ENV HOSTNAME "0.0.0.0" | |
CMD ["bun", "server.js"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** @type {import('next').NextConfig} */ | |
const nextConfig = { | |
reactStrictMode: true, | |
output: "standalone", | |
}; | |
module.exports = nextConfig; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment