# Dockerfile for relay-tester # Use Debian-based Go image to match runtime stage (avoids musl/glibc linker mismatch) FROM golang:1.25-bookworm AS builder # Install build dependencies RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /build # Copy go mod files COPY go.mod go.sum ./ RUN go mod download # Copy source code COPY . . # Build the relay-tester binary RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o relay-tester ./cmd/relay-tester # Runtime stage # Use Debian slim instead of Alpine because Debian's libsecp256k1 includes # Schnorr signatures (secp256k1_schnorrsig_*) and ECDH which Nostr requires. # Alpine's libsecp256k1 is built without these modules. FROM debian:bookworm-slim # Install runtime dependencies RUN apt-get update && \ apt-get install -y --no-install-recommends ca-certificates libsecp256k1-1 && \ rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy binary (libsecp256k1.so.1 is already installed via apt) COPY --from=builder /build/relay-tester /app/relay-tester # Default relay URL (can be overridden) ENV RELAY_URL=ws://orly:3334 # Run the relay tester ENTRYPOINT ["/app/relay-tester"] CMD ["-url", "${RELAY_URL}"]