diff --git a/apps/frontend/Dockerfile b/apps/frontend/Dockerfile index dc6c078..ba1f26c 100644 --- a/apps/frontend/Dockerfile +++ b/apps/frontend/Dockerfile @@ -1,5 +1,6 @@ FROM fascinated/docker-images:nodejs_20_with_pnpm +FROM base AS installer WORKDIR /app COPY . . @@ -7,14 +8,31 @@ RUN pnpm install ENV NEXT_TELEMETRY_DISABLED 1 +# Add the commit hash +ARG GIT_REV +ENV GIT_REV=${GIT_REV} + RUN pnpm i -g turbo@^2 RUN turbo prune frontend --docker RUN turbo run build --filter=frontend +FROM base AS runner + # Add the commit hash ARG GIT_REV ENV GIT_REV=${GIT_REV} EXPOSE 3000 -CMD node /app/apps/frontend/.next/standalone/server.js \ No newline at end of file +# Don't run production as root +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs +USER nextjs + +# Automatically leverage output traces to reduce image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/.next/standalone ./ +COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/.next/static ./apps/frontend/.next/static +COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/public ./apps/frontend/public + +CMD node /app/apps/frontend/server.js \ No newline at end of file