Files
HubFrontendDocker/Dockerfile
T

56 lines
1.7 KiB
Docker

# syntax=docker/dockerfile:1
FROM node:25-bookworm-slim AS builder
WORKDIR /build
ENV ELECTRON_SKIP_BINARY_DOWNLOAD=1
RUN apt-get update \
&& apt-get install --yes --no-install-recommends patch \
&& rm -rf /var/lib/apt/lists/*
COPY upstream/HubFrontend/package.json upstream/HubFrontend/package-lock.json upstream/HubFrontend/.npmrc ./
RUN --mount=type=cache,target=/root/.npm npm ci
COPY upstream/HubFrontend/ ./
COPY docker/hcaptcha-sitekey.patch /tmp/hcaptcha-sitekey.patch
COPY docker/remove-analytics.mjs /tmp/remove-analytics.mjs
COPY docker/replace-fallback-avatar.mjs /tmp/replace-fallback-avatar.mjs
RUN if grep -q 'sitekey="1788882d-3695-4807-abac-7d7166ec6325"' src/routes/auth/login.js; then \
patch -p1 < /tmp/hcaptcha-sitekey.patch; \
elif grep -q 'VITE_HCAPTCHA_SITEKEY' src/routes/auth/login.js; then \
echo "Upstream already supports VITE_HCAPTCHA_SITEKEY; skip the deployment patch."; \
else \
echo "Unsupported upstream hCaptcha configuration." >&2; \
exit 1; \
fi
RUN node /tmp/remove-analytics.mjs
RUN node /tmp/replace-fallback-avatar.mjs
ARG ASSETS_BASE=""
ARG VITE_USE_MULTIHUB=false
ARG VITE_MULTIHUB_DISCOVERY=""
ARG VITE_CONFIG_URL
ARG VITE_HCAPTCHA_SITEKEY
ENV ASSETS_BASE=${ASSETS_BASE} \
VITE_USE_MULTIHUB=${VITE_USE_MULTIHUB} \
VITE_MULTIHUB_DISCOVERY=${VITE_MULTIHUB_DISCOVERY} \
VITE_CONFIG_URL=${VITE_CONFIG_URL} \
VITE_HCAPTCHA_SITEKEY=${VITE_HCAPTCHA_SITEKEY}
RUN test -n "$VITE_HCAPTCHA_SITEKEY" \
|| (echo "VITE_HCAPTCHA_SITEKEY must be set." >&2; exit 1)
RUN npm run build
FROM nginx:alpine AS runtime
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /build/build/ /usr/share/nginx/html/
EXPOSE 8080