@@ -6,12 +6,22 @@ FROM registry.ddbuild.io/images/mirror/golang:1.22-alpine AS builder
6
6
7
7
WORKDIR /usr/src/app/
8
8
9
- RUN apk add build-base protobuf-dev protoc
10
-
11
- COPY ./src/productcatalogservice/ ./
12
- RUN go build -o /go/bin/productcatalogservice/
13
-
14
- # -----------------------------------------------------------------------------
9
+ RUN apk update \
10
+ && apk add --no-cache make protobuf-dev
11
+
12
+ RUN --mount=type=cache,target=/go/pkg/mod/ \
13
+ --mount=type=bind,source=./src/productcatalogservice/go.sum,target=go.sum \
14
+ --mount=type=bind,source=./src/productcatalogservice/go.mod,target=go.mod \
15
+ --mount=type=bind,source=./src/productcatalogservice/tools.go,target=tools.go \
16
+ go mod download \
17
+ && go list -e -f '{{range .Imports}}{{.}} {{end}}' tools.go | CGO_ENABLED=0 xargs go install -mod=readonly
18
+
19
+ RUN --mount=type=cache,target=/go/pkg/mod/ \
20
+ --mount=type=cache,target=/root/.cache/go-build \
21
+ --mount=type=bind,rw,source=./src/productcatalogservice,target=. \
22
+ --mount=type=bind,rw,source=./pb,target=./pb \
23
+ protoc -I ./pb ./pb/demo.proto --go_out=./ --go-grpc_out=./ \
24
+ && go build -ldflags "-s -w" -o /go/bin/productcatalogservice/ ./
15
25
16
26
FROM registry.ddbuild.io/images/mirror/alpine:latest AS release
17
27
0 commit comments