# Dockerfile for the Dragon Fork WebRTC PoC (M1). # # Two-stage: # 1. builder: compile a static linux/amd64 binary inside the repo # 2. runtime: minimal scratch image with the binary only # # The PoC has no outbound HTTPS needs and no dynamic libraries, so # `scratch` is safe. Image size ~14 MB. # # The binary's flags (-stream, -rtp-port, -listen, -public-ip) are # passed via `command:` in docker-compose (or `docker run ...`). # ---- builder ---- FROM golang:1.24-alpine AS builder WORKDIR /src COPY . . # Static, stripped, no CGO — no shared libs needed in runtime stage. ENV CGO_ENABLED=0 GOOS=linux GOARCH=amd64 RUN go build -trimpath -ldflags="-s -w" \ -o /out/webrtc-poc \ ./cmd/webrtc-poc # ---- runtime ---- FROM scratch AS runtime COPY --from=builder /out/webrtc-poc /webrtc-poc # Defaults — override via `command:` or `docker run ...`. EXPOSE 8787/tcp EXPOSE 10000/udp ENTRYPOINT ["/webrtc-poc"]