diff --git a/apps/hub/Dockerfile b/apps/hub/Dockerfile index 6c5c55af..6467ccbb 100644 --- a/apps/hub/Dockerfile +++ b/apps/hub/Dockerfile @@ -1,5 +1,9 @@ FROM node:22-alpine AS base + +ENV PNPM_HOME="/usr/local/pnpm" +ENV PATH="${PNPM_HOME}:${PATH}" + ARG NEXT_PUBLIC_HUB_URL ARG NEXT_PUBLIC_HUB_SERVER_URL ARG NEXT_PUBLIC_DISCORD_URL @@ -12,13 +16,13 @@ ENV NEXT_PUBLIC_DISCORD_URL=${NEXT_PUBLIC_DISCORD_URL} ENV NEXT_PUBLIC_MOODLE_URL=${NEXT_PUBLIC_MOODLE_URL} ENV NEXT_PUBLIC_DISPATCH_URL=${NEXT_PUBLIC_DISPATCH_URL} -FROM base AS builder - -ENV PNPM_HOME="/usr/local/pnpm" -ENV PATH="${PNPM_HOME}:${PATH}" - RUN corepack enable && corepack prepare pnpm@latest --activate + + +RUN echo "NEXT_PUBLIC_DISCORD_URL=${NEXT_PUBLIC_DISCORD_URL}" RUN pnpm add -g turbo@^2.5 + +FROM base AS builder RUN apk update RUN apk add --no-cache libc6-compat @@ -29,13 +33,6 @@ COPY . . RUN turbo prune hub --docker FROM base AS installer - -ENV PNPM_HOME="/usr/local/pnpm" -ENV PATH="${PNPM_HOME}:${PATH}" - -RUN corepack enable && corepack prepare pnpm@latest --activate -RUN pnpm add -g turbo@^2.5 - RUN apk update RUN apk add --no-cache libc6-compat @@ -47,24 +44,21 @@ RUN pnpm install # Build the project COPY --from=builder /usr/app/out/full/ . -RUN turbo run build --filter=hub... +RUN turbo run build -FROM node:22-alpine AS runner +FROM base AS runner WORKDIR /usr/app # 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 /usr/app/apps/hub/.next/standalone ./ -COPY --from=installer --chown=nextjs:nodejs /usr/app/apps/hub/.next/static ./apps/hub/.next/static -COPY --from=installer --chown=nextjs:nodejs /usr/app/apps/hub/public ./apps/hub/public - -USER nextjs +COPY --from=installer --chown=nextjs:nodejs /usr/app/ ./ # Expose the application port EXPOSE 3000 -CMD ["node", "apps/hub/server.js"] \ No newline at end of file +CMD ["pnpm", "--dir", "apps/hub", "run", "start"] \ No newline at end of file