41 lines
1.1 KiB
Docker
41 lines
1.1 KiB
Docker
# Kaboot Frontend - Multi-stage Production Build
|
|
#
|
|
# Build:
|
|
# docker build \
|
|
# --build-arg VITE_API_URL=https://kaboot.example.com \
|
|
# --build-arg VITE_BACKEND_URL=https://kaboot.example.com \
|
|
# --build-arg VITE_AUTHENTIK_URL=https://auth.example.com \
|
|
# -t kaboot-frontend .
|
|
|
|
FROM node:20-alpine AS builder
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci --silent
|
|
|
|
COPY index.html tsconfig.json vite.config.ts postcss.config.js tailwind.config.js ./
|
|
COPY src/ ./src/
|
|
COPY components/ ./components/
|
|
COPY hooks/ ./hooks/
|
|
COPY public/ ./public/
|
|
|
|
ARG VITE_API_URL
|
|
ARG VITE_BACKEND_URL
|
|
ARG VITE_AUTHENTIK_URL
|
|
ARG VITE_OIDC_CLIENT_ID=kaboot-spa
|
|
ARG VITE_OIDC_APP_SLUG=kaboot
|
|
ARG GEMINI_API_KEY
|
|
|
|
ENV VITE_API_URL=$VITE_API_URL \
|
|
VITE_BACKEND_URL=$VITE_BACKEND_URL \
|
|
VITE_AUTHENTIK_URL=$VITE_AUTHENTIK_URL \
|
|
VITE_OIDC_CLIENT_ID=$VITE_OIDC_CLIENT_ID \
|
|
VITE_OIDC_APP_SLUG=$VITE_OIDC_APP_SLUG \
|
|
GEMINI_API_KEY=$GEMINI_API_KEY
|
|
|
|
RUN npm run build
|
|
|
|
FROM caddy:2-alpine
|
|
COPY --from=builder /app/dist /srv/frontend
|
|
EXPOSE 80 443
|
|
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|