# syntax=docker/dockerfile:1.7 ARG VERSION=dev FROM golang:1.25-alpine AS builder ARG VERSION WORKDIR /build COPY backend/go.mod backend/go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod \ go mod download COPY backend/ ./ RUN --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags "-s -w -X 'Wavelet/OpenFlare/plugins/relay/config.Version=$VERSION'" -o /build/bin/openflare-relay ./cmd/relay/main.go # Final runtime image FROM fatedier/frps:v0.69.0 WORKDIR /app # Copy openflare-relay binary COPY --from=builder /build/bin/openflare-relay ./openflare-relay VOLUME ["/app/data"] ENV OPENFLARE_FRPS_PATH=/usr/bin/frps ENV OPENFLARE_DATA_DIR=/app/data ENTRYPOINT ["/app/openflare-relay"]