FROM node:22.12.0-alpine
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ARG NODE_OPTIONS
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max_old_space_size=4096"}
ENV NX_VERBOSE_LOGGING=true
ADD https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/v0.4.11/grpc_health_probe-linux-amd64 /bin/grpc_health_probe
RUN chmod +x /bin/grpc_health_probe
RUN apk update && apk add bind-tools protobuf-dev \
    && npm install -g pnpm@10.0.0
WORKDIR /usr
COPY .nx/key/key.ini ./.nx/key/key.ini
COPY .npmrc package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.build.json nx.json ./
COPY humand-packages/ ./humand-packages/
RUN --mount=type=secret,id=codeartifact_auth_token \
    sed -i "s|\${CODEARTIFACT_AUTH_TOKEN}|$(cat /run/secrets/codeartifact_auth_token)|g" .npmrc && \
    pnpm install
RUN ./humand-packages/monolith/build-proto.sh
EXPOSE 8080 50051 9229
CMD pnpm nx run monolith:serve