# Build from the repository root: shared frontend sources are required.
FROM node:22-slim AS build

WORKDIR /repo/word-addin
COPY word-addin/package*.json ./
RUN npm ci
COPY word-addin/ ./
COPY frontend/src/shared/ /repo/frontend/src/shared/
COPY frontend/public/icons/ /repo/frontend/public/icons/

ARG REACT_APP_WEB_APP_URL
ARG WORD_ADDIN_PUBLIC_URL
ENV REACT_APP_API_BASE_URL=/api \
    REACT_APP_WEB_APP_URL=$REACT_APP_WEB_APP_URL \
    WORD_ADDIN_PUBLIC_URL=$WORD_ADDIN_PUBLIC_URL
RUN npm run build

FROM node:22-slim
WORKDIR /app
COPY --from=build /repo/word-addin/dist ./dist
COPY word-addin/server.mjs ./server.mjs
ENV NODE_ENV=production PORT=3200
USER node
EXPOSE 3200
CMD ["node", "server.mjs"]
