3
3
ARG GO_VERSION=1.23
4
4
ARG DEBIAN_VERSION=bookworm
5
5
ARG PROTOC_VERSION=3.11.4
6
- ARG PROTOC_GOOGLEAPIS_VERSION=2af421884dd468d565137215c946ebe4e245ae26
7
6
8
7
# protoc is dynamically linked to glibc so can't use alpine base
9
8
@@ -22,16 +21,6 @@ RUN <<EOT
22
21
unzip protoc-${PROTOC_VERSION}-${TARGETOS}-${arch}.zip -d /opt/protoc
23
22
EOT
24
23
25
- FROM base AS googleapis
26
- ARG PROTOC_GOOGLEAPIS_VERSION
27
- RUN <<EOT
28
- set -e
29
- wget -q https://github.com/googleapis/googleapis/archive/${PROTOC_GOOGLEAPIS_VERSION}.zip -O googleapis.zip
30
- unzip googleapis.zip '*.proto' -d /opt
31
- mkdir -p /opt/googleapis
32
- mv /opt/googleapis-${PROTOC_GOOGLEAPIS_VERSION} /opt/googleapis/include
33
- EOT
34
-
35
24
FROM base AS gobuild-base
36
25
WORKDIR /app
37
26
@@ -41,10 +30,10 @@ RUN --mount=type=bind,source=go.mod,target=/app/go.mod \
41
30
--mount=type=cache,target=/root/.cache \
42
31
--mount=type=cache,target=/go/pkg/mod <<EOT
43
32
set -e
44
- mkdir -p /opt/vtprotobuf
33
+ mkdir -p /opt/vtprotobuf/include/github.com/planetscale/vtprotobuf/vtproto
45
34
go mod download github.com/planetscale/vtprotobuf
46
- cp -R $(go list -m -f='{{.Dir}}' github.com/planetscale/vtprotobuf)/include /opt/vtprotobuf
47
- chmod -R 0755 /opt/vtprotobuf
35
+ cp $(go list -m -f='{{.Dir}}' github.com/planetscale/vtprotobuf)/include/github.com/planetscale/vtprotobuf/vtproto/ext.proto /opt/vtprotobuf/include/github.com/planetscale/vtprotobuf/vtproto/ext.proto
36
+ chmod 0644 /opt/vtprotobuf/include/github.com/planetscale/vtprotobuf/vtproto/ext.proto
48
37
EOT
49
38
50
39
FROM gobuild-base AS vendored
56
45
57
46
FROM scratch AS protobuf
58
47
COPY --link --from=protoc /opt/protoc /
59
- COPY --link --from=googleapis /opt/googleapis /
60
48
COPY --link --from=vtprotobuf /opt/vtprotobuf /
61
49
COPY --link --from=vendored /opt/vendored /
62
50
0 commit comments