watch-party/frontend/Dockerfile

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"]