main
text 31 lines 878 Bytes
Raw
1 # syntax=docker/dockerfile:1
2
3 FROM --platform=$BUILDPLATFORM golang:1.26.4 AS go-builder
4 WORKDIR /src
5
6 RUN apt-get update && apt-get install -y --no-install-recommends \
7 make && rm -rf /var/lib/apt/lists/*
8
9 COPY go.mod go.sum ./
10 RUN --mount=type=cache,target=/go/pkg/mod go mod download
11
12 COPY . .
13 RUN rm -rf bin/ cmd/relay-server/dist && mkdir -p cmd/relay-server/dist && touch cmd/relay-server/dist/.gitkeep
14
15 ARG TARGETOS
16 ARG TARGETARCH
17 RUN --mount=type=cache,target=/go/pkg/mod \
18 --mount=type=cache,target=/root/.cache/go-build \
19 make build-tunnel && \
20 GOOS=${TARGETOS} GOARCH=${TARGETARCH} make build-server
21
22 FROM gcr.io/distroless/static-debian12:nonroot AS runtime
23
24 COPY --from=go-builder /src/bin/relay-server /usr/bin/relay-server
25
26 ENV PORTAL_URL=https://localhost:4017
27 ENV IDENTITY_PATH=/portal-certs
28 ENV TZ=UTC
29
30 EXPOSE 4017
31 ENTRYPOINT ["/usr/bin/relay-server"]