| |
| FROM oven/bun:1.3.9 AS base |
|
|
| |
| FROM base AS turbo-cli |
| RUN bun add -g turbo |
|
|
| |
| FROM turbo-cli AS builder |
| WORKDIR /app |
| |
| COPY . . |
| |
| RUN turbo prune @midday/dashboard --docker |
|
|
| |
| FROM base AS installer |
| WORKDIR /app |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* |
|
|
| |
| COPY --from=builder /app/out/json/ . |
| COPY bunfig.toml . |
|
|
| |
| RUN bun install |
|
|
| |
| COPY --from=builder /app/out/full/ . |
|
|
| |
| ARG NEXT_PUBLIC_SUPABASE_URL |
| ARG NEXT_PUBLIC_SUPABASE_ANON_KEY |
| ARG NEXT_PUBLIC_SUPABASE_ID |
| ARG NEXT_PUBLIC_URL |
| ARG NEXT_PUBLIC_API_URL |
| ARG NEXT_PUBLIC_OPENPANEL_CLIENT_ID |
| ARG NEXT_PUBLIC_SENTRY_DSN |
| ARG NEXT_PUBLIC_PLAID_ENVIRONMENT |
| ARG NEXT_PUBLIC_TELLER_APPLICATION_ID |
| ARG NEXT_PUBLIC_TELLER_ENVIRONMENT |
| ARG NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY |
| ARG NEXT_PUBLIC_GOOGLE_API_KEY |
| ARG NEXT_PUBLIC_DESKTOP_SCHEME |
| ARG NEXT_PUBLIC_WHATSAPP_NUMBER |
|
|
| |
| ARG SENTRY_AUTH_TOKEN |
| ARG SENTRY_ORG |
| ARG SENTRY_PROJECT |
|
|
| |
| |
| ARG NEXT_SERVER_ACTIONS_ENCRYPTION_KEY |
| ENV NEXT_SERVER_ACTIONS_ENCRYPTION_KEY=$NEXT_SERVER_ACTIONS_ENCRYPTION_KEY |
|
|
| |
| |
| COPY --from=builder /app/.git-commit-sha /tmp/git-sha.txt |
|
|
| ENV CI=true |
| ENV NODE_ENV=production |
|
|
| |
| |
| RUN GIT_COMMIT_SHA=$(cat /tmp/git-sha.txt 2>/dev/null || echo ""); \ |
| export GIT_COMMIT_SHA; \ |
| export SENTRY_RELEASE="$GIT_COMMIT_SHA"; \ |
| bunx turbo run build --filter=@midday/engine --only && \ |
| bunx turbo run build --filter=@midday/dashboard --only |
|
|
| |
| FROM oven/bun:1.3.9 AS runner |
| WORKDIR /app |
|
|
| ENV NODE_ENV=production |
| ENV PORT=3000 |
| ENV HOSTNAME="0.0.0.0" |
|
|
| RUN groupadd --system --gid 1001 nodejs && \ |
| useradd --system --uid 1001 --no-log-init -g nodejs nextjs |
|
|
| |
| COPY --from=installer --chown=nextjs:nodejs /app/apps/dashboard/.next/standalone ./ |
| COPY --from=installer --chown=nextjs:nodejs /app/apps/dashboard/.next/static ./apps/dashboard/.next/static |
| COPY --from=installer --chown=nextjs:nodejs /app/apps/dashboard/public ./apps/dashboard/public |
|
|
| |
| |
| COPY --from=installer /tmp/git-sha.txt /tmp/git-sha.txt |
| COPY --from=builder /app/scripts/docker-entrypoint.sh /app/entrypoint.sh |
| RUN chmod +x /app/entrypoint.sh |
|
|
| USER nextjs |
|
|
| EXPOSE 3000 |
|
|
| ENTRYPOINT ["/app/entrypoint.sh"] |
| CMD ["bun", "apps/dashboard/server.js"] |
|
|