39 lines
1.2 KiB
Docker
39 lines
1.2 KiB
Docker
# ---- build ----
|
|
FROM node:20-alpine AS build
|
|
WORKDIR /app
|
|
COPY package*.json ./
|
|
RUN npm ci --no-audit --no-fund
|
|
COPY . .
|
|
|
|
# NEW: base path for Vite (e.g. /watch-party/)
|
|
ARG PUBLIC_BASE_PATH=/
|
|
ENV PUBLIC_BASE_PATH=${PUBLIC_BASE_PATH}
|
|
ARG FRONTEND_MODE=production
|
|
ENV FRONTEND_MODE=${FRONTEND_MODE}
|
|
ENV VITE_APP_MODE=${FRONTEND_MODE}
|
|
ARG VITE_BACKEND_ORIGIN=/api
|
|
ENV VITE_BACKEND_ORIGIN=${VITE_BACKEND_ORIGIN}
|
|
ARG VITE_AUTH_ENABLED=true
|
|
ENV VITE_AUTH_ENABLED=${VITE_AUTH_ENABLED}
|
|
ARG VITE_FIREBASE_API_KEY=
|
|
ENV VITE_FIREBASE_API_KEY=${VITE_FIREBASE_API_KEY}
|
|
ARG VITE_FIREBASE_AUTH_DOMAIN=
|
|
ENV VITE_FIREBASE_AUTH_DOMAIN=${VITE_FIREBASE_AUTH_DOMAIN}
|
|
ARG VITE_FIREBASE_PROJECT_ID=
|
|
ENV VITE_FIREBASE_PROJECT_ID=${VITE_FIREBASE_PROJECT_ID}
|
|
ARG VITE_FIREBASE_APP_ID=
|
|
ENV VITE_FIREBASE_APP_ID=${VITE_FIREBASE_APP_ID}
|
|
|
|
RUN npm run build
|
|
|
|
# ---- runtime (nginx) ----
|
|
FROM nginx:1.27-alpine
|
|
RUN apk add --no-cache gettext
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
COPY ops/nginx.conf.template /etc/nginx/conf.d/default.conf.template
|
|
COPY ops/entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
ENV BACKEND_ORIGIN=http://localhost:8082
|
|
EXPOSE 80
|
|
ENTRYPOINT ["/bin/sh","/entrypoint.sh"]
|