FROM node:24-bookworm-slim AS base ENV PNPM_HOME=/pnpm ENV PATH=$PNPM_HOME:$PATH RUN corepack enable && corepack prepare pnpm@10.26.1 --activate WORKDIR /app FROM base AS deps COPY pnpm-workspace.yaml pnpm-lock.yaml package.json ./ COPY artifacts/api-server/package.json artifacts/api-server/ COPY artifacts/tx-os/package.json artifacts/tx-os/ COPY lib/api-client-react/package.json lib/api-client-react/ COPY lib/api-spec/package.json lib/api-spec/ COPY lib/api-zod/package.json lib/api-zod/ COPY lib/db/package.json lib/db/ COPY lib/object-storage-web/package.json lib/object-storage-web/ COPY scripts/package.json scripts/ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ pnpm install --frozen-lockfile --ignore-scripts FROM deps AS build COPY tsconfig.base.json* tsconfig.json* ./ COPY lib lib COPY artifacts/tx-os artifacts/tx-os ENV PORT=80 ENV BASE_PATH=/ RUN pnpm --filter @workspace/tx-os run build FROM nginx:1.27-alpine AS runtime RUN rm -rf /usr/share/nginx/html/* /etc/nginx/conf.d/default.conf COPY --from=build /app/artifacts/tx-os/dist/public /usr/share/nginx/html COPY docker/nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]