atproto relay implementation in zig zlay.waow.tech

fix: switch to Debian + glibc target for RocksDB compatibility

zig 0.15's C++ codegen for musl produces illegal instructions in
RocksDB's LRU cache (std::function vtable). Switch to Debian
bookworm-slim with x86_64-linux-gnu target.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+7 -6
+7 -6
Dockerfile
··· 1 1 # multi-stage build: compile natively inside x86_64 linux container 2 - # (cross-compiling C++ from ARM64 produces illegal instructions in RocksDB) 3 - FROM --platform=linux/amd64 alpine:3.21 AS builder 4 - RUN apk add --no-cache curl tar xz 2 + # uses Debian (glibc) because zig 0.15's C++ codegen for musl 3 + # produces illegal instructions in RocksDB's LRU cache 4 + FROM --platform=linux/amd64 debian:bookworm-slim AS builder 5 + RUN apt-get update && apt-get install -y --no-install-recommends curl xz-utils ca-certificates && rm -rf /var/lib/apt/lists/* 5 6 RUN curl -fSL https://ziglang.org/download/0.15.2/zig-x86_64-linux-0.15.2.tar.xz \ 6 7 | tar xJ -C /opt 7 8 ENV PATH=/opt/zig-x86_64-linux-0.15.2:$PATH 8 9 WORKDIR /build 9 10 COPY . . 10 - RUN zig build -Doptimize=ReleaseSafe -Dcpu=baseline 11 + RUN zig build -Doptimize=ReleaseSafe -Dcpu=baseline -Dtarget=x86_64-linux-gnu 11 12 12 - FROM --platform=linux/amd64 alpine:3.21 13 - RUN apk add --no-cache ca-certificates 13 + FROM --platform=linux/amd64 debian:bookworm-slim 14 + RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* 14 15 COPY --from=builder /build/zig-out/bin/zlay /usr/local/bin/zlay 15 16 RUN mkdir -p /data/events /data/collection-index 16 17 ENV RELAY_DATA_DIR=/data/events