FROM oven/bun:1 AS base WORKDIR /app # Install dependencies FROM base AS deps COPY package.json bun.lock ./ COPY packages/core/package.json packages/core/package.json COPY packages/client/package.json packages/client/package.json COPY packages/indexer/package.json packages/indexer/package.json COPY packages/feeds/package.json packages/feeds/package.json COPY packages/feature-requests/package.json packages/feature-requests/package.json COPY packages/mcp/package.json packages/mcp/package.json COPY packages/app/package.json packages/app/package.json RUN bun install --frozen-lockfile --ignore-scripts FROM deps AS build COPY . . RUN bun run db:generate && bun run build FROM base AS production WORKDIR /app COPY --from=build /app/packages ./packages COPY --from=build /app/drizzle ./drizzle COPY package.json bun.lock ./ RUN bun install --frozen-lockfile --production ENV NODE_ENV=production EXPOSE 3001 CMD ["sh", "-c", "chown -R bun:bun /data && exec su -s /bin/sh bun -c 'bun run db:migrate && bun run start'"]