FROM golang:1.24-alpine AS builder WORKDIR /app ENV GOPROXY=https://goproxy.cn,direct RUN apk add --no-cache protobuf RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.5 && \ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5.1 COPY collab-go/go.mod collab-go/go.sum ./ COPY collab-go ./collab-go COPY proto ./proto WORKDIR /app/collab-go RUN go mod download RUN mkdir -p /app/collab-go/pkg/gen && \ protoc -I /app/proto \ --go_out=/app/collab-go/pkg/gen --go_opt=paths=source_relative \ --go-grpc_out=/app/collab-go/pkg/gen --go-grpc_opt=paths=source_relative \ /app/proto/yoresee_doc/v1/yoresee_doc.proto RUN go mod tidy RUN CGO_ENABLED=0 go build -p 1 -o collab-go main.go FROM alpine:latest AS runner WORKDIR /app COPY --from=builder /app/collab-go . EXPOSE 1234 CMD ["./collab-go"]