diff --git a/Dockerfile b/Dockerfile index 9e092bf..074d574 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,32 +1,32 @@ -# Base image +# -------------------------------- +# Base +# -------------------------------- FROM node:20-alpine AS base WORKDIR /app - -# ----------------------------- -# Dependencies -# ----------------------------- -FROM base AS deps - -# Needed for some node modules RUN apk add --no-cache libc6-compat + +# -------------------------------- +# Dependencies +# -------------------------------- +FROM base AS deps + # Install Bun RUN npm install -g bun -# Copy lockfiles -COPY package.json bun.lock* ./ +# Copy package files +COPY package.json bun.lockb* ./ # Install dependencies RUN bun install --frozen-lockfile -# ----------------------------- +# -------------------------------- # Builder -# ----------------------------- +# -------------------------------- FROM base AS builder WORKDIR /app -# Install Bun for build RUN npm install -g bun COPY --from=deps /app/node_modules ./node_modules @@ -34,31 +34,35 @@ COPY . . ENV NEXT_TELEMETRY_DISABLED=1 +# --- Algolia build args (Coolify injects these) --- +ARG NEXT_PUBLIC_ALGOLIA_DOCSEARCH_APP_ID +ARG NEXT_PUBLIC_ALGOLIA_DOCSEARCH_API_KEY +ARG NEXT_PUBLIC_ALGOLIA_DOCSEARCH_INDEX_NAME + +ENV NEXT_PUBLIC_ALGOLIA_DOCSEARCH_APP_ID=$NEXT_PUBLIC_ALGOLIA_DOCSEARCH_APP_ID +ENV NEXT_PUBLIC_ALGOLIA_DOCSEARCH_API_KEY=$NEXT_PUBLIC_ALGOLIA_DOCSEARCH_API_KEY +ENV NEXT_PUBLIC_ALGOLIA_DOCSEARCH_INDEX_NAME=$NEXT_PUBLIC_ALGOLIA_DOCSEARCH_INDEX_NAME + # Build Next.js RUN bun run build -# ----------------------------- -# Runner (Production) -# ----------------------------- +# -------------------------------- +# Runner +# -------------------------------- FROM node:20-alpine AS runner WORKDIR /app -# Install tools for Coolify healthcheck -RUN apk add --no-cache curl wget libc6-compat +RUN apk add --no-cache curl libc6-compat ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 -ENV NEXT_PUBLIC_ALGOLIA_DOCSEARCH_APP_ID=9H0TIFTCUL -ENV NEXT_PUBLIC_ALGOLIA_DOCSEARCH_API_KEY=f550fc7a27c062f31d6fc7f63d119d1d -ENV NEXT_PUBLIC_ALGOLIA_DOCSEARCH_INDEX_NAME=docu.crawler - # Create non-root user -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs +RUN addgroup --system --gid 1001 nodejs \ + && adduser --system --uid 1001 nextjs -# Copy built files +# Copy standalone build 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