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