public/brand-logo.svg = ~/hangman-lab-logo-black.svg recolored #000000 -> #9333ea (Fabric deep purple). Dockerfile writes .env.production at build (context .env* is dockerignored) so VITE_APP_NAME/LOGO_URL/FAVICON_URL bake in; logo+favicon -> the mark. Overridable via build args. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
1.0 KiB
Docker
33 lines
1.0 KiB
Docker
FROM node:22-alpine AS build
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
|
|
COPY . .
|
|
|
|
# Brand is baked at build (Vite VITE_* are build-time). Written here, not
|
|
# via a context .env (.dockerignore excludes .env*). public/brand-logo.svg
|
|
# ships the Fabric-purple Hangman Lab mark; override args if rebranding.
|
|
ARG VITE_APP_NAME=Fabric
|
|
ARG VITE_LOGO_URL=/brand-logo.svg
|
|
ARG VITE_FAVICON_URL=/brand-logo.svg
|
|
RUN printf 'VITE_APP_NAME=%s\nVITE_LOGO_URL=%s\nVITE_FAVICON_URL=%s\n' \
|
|
"$VITE_APP_NAME" "$VITE_LOGO_URL" "$VITE_FAVICON_URL" > .env.production
|
|
RUN npm run build
|
|
|
|
FROM nginx:1.27-alpine AS runtime
|
|
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
|
|
COPY docker/entrypoint.sh /docker-entrypoint-fabric.sh
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
RUN chmod +x /docker-entrypoint-fabric.sh
|
|
|
|
# Runtime SPA config (see docker/entrypoint.sh). Override at `docker run`
|
|
# / compose: empty values keep prior behavior.
|
|
ENV FABRIC_OIDC_ONLY=""
|
|
ENV FIX_TO_CENTER=""
|
|
|
|
EXPOSE 80
|
|
ENTRYPOINT ["/docker-entrypoint-fabric.sh"]
|
|
CMD ["nginx", "-g", "daemon off;"]
|