# syntax=docker/dockerfile:1.7 # thothii-frontend: build Vite (React) + nginx-unprivileged (porta 8080). ARG IMAGE_VERSION=local FROM node:24.16.0-bookworm@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7 AS build WORKDIR /src COPY frontend/package*.json ./ RUN npm ci COPY frontend/ ./ ENV VITE_BASE=/ VITE_BACKEND_URL=/api RUN npm run build FROM nginxinc/nginx-unprivileged:1.27-alpine@sha256:65e3e85dbaed8ba248841d9d58a899b6197106c23cb0ff1a132b7bfe0547e4c0 AS runtime ARG IMAGE_VERSION LABEL org.opencontainers.image.title="thothii-frontend" \ org.opencontainers.image.version="${IMAGE_VERSION}" \ org.opencontainers.image.description="ThothII standalone frontend" COPY --from=build /src/dist /usr/share/nginx/html COPY docker/nginx.conf.template /etc/nginx/templates/default.conf.template COPY --chmod=755 docker/frontend-entrypoint.sh /usr/local/bin/frontend-entrypoint COPY --chmod=755 docker/validate-frontend-api-upstream.sh /usr/local/bin/validate-frontend-api-upstream COPY --chmod=755 docker/smoke/frontend-smoke.sh /usr/local/bin/frontend-config-smoke ENTRYPOINT ["/usr/local/bin/frontend-entrypoint"] CMD ["nginx", "-g", "daemon off;"] EXPOSE 8080