Containerize frontend
This commit is contained in:
parent
92b3a5bc85
commit
cb565b5ac8
4 changed files with 74 additions and 36 deletions
41
Dockerfile
Normal file
41
Dockerfile
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# 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.mjs ./
|
||||
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"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue