diff --git a/Dockerfile b/Dockerfile index 71cc119..eb3e7aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,10 +12,15 @@ RUN npm install -g serve@14 WORKDIR /app COPY --from=build /app ./ ENV FRONTEND_DEV_MODE=0 -# OIDC-only mode flag. The SPA's effective behavior is driven at runtime by -# the backend's public GET /auth/config (single source of truth); this -# build/runtime arg is declared so the frontend image carries the same knob. +# OIDC-only mode flag. Injected into the SPA at container start as +# /runtime-config.js so the setup wizard knows it before the backend +# exists; /auth/config remains authoritative once the backend is up. ARG HARBORFORGE_OIDC_ONLY=false ENV HARBORFORGE_OIDC_ONLY=${HARBORFORGE_OIDC_ONLY} EXPOSE 3000 -CMD ["sh", "-c", "if [ \"$FRONTEND_DEV_MODE\" = \"1\" ]; then npm run dev -- --host 0.0.0.0 --port 3000 --strictPort; else serve -s dist -l 3000; fi"] +CMD ["sh", "-c", "\ + if [ \"$HARBORFORGE_OIDC_ONLY\" = \"true\" ]; then OO=true; else OO=false; fi; \ + CFG=\"window.__HF_RUNTIME__={\\\"oidc_only\\\":$OO};\"; \ + mkdir -p public; printf '%s' \"$CFG\" > public/runtime-config.js; \ + [ -d dist ] && printf '%s' \"$CFG\" > dist/runtime-config.js; \ + if [ \"$FRONTEND_DEV_MODE\" = \"1\" ]; then npm run dev -- --host 0.0.0.0 --port 3000 --strictPort; else serve -s dist -l 3000; fi"] diff --git a/index.html b/index.html index c140927..de538cb 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,9 @@
+ +