# Stage 1: Build Angular and server FROM oven/bun:1-alpine AS builder WORKDIR /app COPY package*.json bun.lock* ./ RUN bun install --frozen-lockfile COPY . . # Non-secret env for build; pass build args if needed ARG STRAVA_CLIENT_ID= ARG STRAVA_REDIRECT_URI= ARG RIOT_REGION=eun1 ARG RIOT_SUMMONER_NAME_LOL= ARG RIOT_SUMMONER_NAME_TFT= ARG RIOT_TAG_LINE= ARG FACEIT_USER_ID= ARG ROCKET_LEAGUE_PLATFORM=steam ARG ROCKET_LEAGUE_USERNAME= ENV STRAVA_CLIENT_ID=$STRAVA_CLIENT_ID \ STRAVA_REDIRECT_URI=$STRAVA_REDIRECT_URI \ RIOT_REGION=$RIOT_REGION \ RIOT_SUMMONER_NAME_LOL=$RIOT_SUMMONER_NAME_LOL \ RIOT_SUMMONER_NAME_TFT=$RIOT_SUMMONER_NAME_TFT \ RIOT_TAG_LINE=$RIOT_TAG_LINE \ FACEIT_USER_ID=$FACEIT_USER_ID \ ROCKET_LEAGUE_PLATFORM=$ROCKET_LEAGUE_PLATFORM \ ROCKET_LEAGUE_USERNAME=$ROCKET_LEAGUE_USERNAME RUN bun run build:ssr # Stage 2: Runtime FROM oven/bun:1-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/scripts ./scripts COPY --from=builder /app/package*.json bun.lock* ./ RUN bun install --frozen-lockfile --production EXPOSE 4000 ENV NODE_ENV=production CMD ["node", "scripts/serve-ssr.js"]