ba90eff5db
Adds the cyber theme to the console and login page, replaces the dark/light toggle with a theme switcher, and moves the login page script to /login.js so it is served under the existing CSP.
37 lines
1.3 KiB
Docker
37 lines
1.3 KiB
Docker
# Stage 1 — build frontend
|
|
FROM node:20-alpine AS frontend-build
|
|
WORKDIR /app
|
|
RUN corepack enable && corepack prepare pnpm@9.2.0 --activate
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY packages/api/package.json packages/api/package.json
|
|
COPY packages/frontend/package.json packages/frontend/package.json
|
|
RUN pnpm install --frozen-lockfile --filter @floci/frontend
|
|
COPY packages/frontend/ packages/frontend/
|
|
COPY svgAsset/ svgAsset/
|
|
COPY aws-icons-svg/ aws-icons-svg/
|
|
COPY TheCloud.png TheCloud.png
|
|
COPY OS_img/ OS_img/
|
|
RUN pnpm --filter @floci/frontend run build
|
|
|
|
# Stage 2 — compile API to a self-contained binary
|
|
FROM oven/bun:1-alpine AS api-build
|
|
WORKDIR /app
|
|
COPY packages/api/package.json packages/api/bun.lock* ./
|
|
RUN bun install
|
|
COPY packages/api/src ./src
|
|
RUN bun build --compile --minify src/index.ts --outfile server
|
|
|
|
# Stage 3 — minimal runtime (no bun, no node_modules)
|
|
FROM alpine:3
|
|
RUN apk add --no-cache ca-certificates libstdc++
|
|
WORKDIR /app
|
|
COPY --from=api-build /app/server ./server
|
|
COPY --from=frontend-build /app/packages/frontend/dist ./public
|
|
COPY packages/api/public ./public
|
|
COPY TheCloud.png ./public/TheCloud.png
|
|
COPY svgAsset/authentik.svg ./public/authentik.svg
|
|
COPY aws-icons-svg ./public/aws-icons
|
|
ENV PORT=4500
|
|
EXPOSE 4500
|
|
CMD ["./server"]
|