From cfccc4d17760891fd2b0b4721960baafef24a56e Mon Sep 17 00:00:00 2001 From: skidoodle Date: Tue, 21 Jan 2025 05:23:41 +0100 Subject: [PATCH] eppic fail --- Dockerfile | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2d541f6..7067089 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,35 @@ +# Base image +FROM node:20-alpine AS base + +### Dependencies ### +FROM base AS deps +RUN apk add --no-cache libc6-compat git curl + +# Setup pnpm environment +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +RUN corepack prepare pnpm@latest --activate + +WORKDIR /app + +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile --prefer-frozen-lockfile + +# Builder +FROM base AS builder + +WORKDIR /app + +COPY . ./ +COPY --from=deps /app/node_modules ./node_modules +RUN pnpm build + ### Production image runner ### FROM base AS runner -# Install curl for healthcheck -RUN apk add --no-cache curl +# Copy curl from deps stage +COPY --from=deps /usr/bin/curl /usr/bin/curl # Disable Next.js telemetry ENV NEXT_TELEMETRY_DISABLED 1 @@ -13,7 +40,7 @@ RUN adduser -SDH nextjs RUN mkdir .next RUN chown nextjs:nodejs .next -# Automatically leverage output traces to reduce image size +# Copy built app from builder stage COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static COPY --from=builder --chown=nextjs:nodejs /app/public ./public @@ -24,7 +51,7 @@ USER nextjs EXPOSE 3000 ENV PORT 3000 ENV HOSTNAME "0.0.0.0" -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "curl", "-f", "http://localhost:3000/health" ] +HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD ["curl", "-f", "http://localhost:3000/health"] -# Run the nextjs app +# Run the next.js app CMD ["node", "server.js"]