44 lines
1.1 KiB
Docker
44 lines
1.1 KiB
Docker
# 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"]
|