FROM node:20-alpine AS builder RUN npm install -g grpc-tools protoc-gen-js WORKDIR /app COPY collab/package.json collab/package-lock.json* ./ RUN npm install COPY proto ./proto RUN mkdir -p gen && \ PROTOC="/usr/local/bin/grpc_tools_node_protoc" && \ GRPC_PLUGIN="/usr/local/bin/grpc_tools_node_protoc_plugin" && \ "$PROTOC" -I proto \ --plugin=protoc-gen-grpc="$GRPC_PLUGIN" \ --grpc_out=grpc_js:gen \ --js_out=import_style=commonjs,binary:gen \ proto/yoresee_doc/v1/yoresee_doc.proto FROM node:20-alpine WORKDIR /app RUN mkdir -p src COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/gen ./src/gen COPY collab/. . EXPOSE 1234 CMD ["node", "server.js"]