From 65da8b09da172d395960be013860e8953c869d68 Mon Sep 17 00:00:00 2001 From: zzstoatzz Date: Sun, 1 Mar 2026 07:23:54 -0600 Subject: [PATCH] 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 --- Dockerfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e373c5..d5093f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,17 @@ # multi-stage build: compile natively inside x86_64 linux container -# (cross-compiling C++ from ARM64 produces illegal instructions in RocksDB) -FROM --platform=linux/amd64 alpine:3.21 AS builder -RUN apk add --no-cache curl tar xz +# uses Debian (glibc) because zig 0.15's C++ codegen for musl +# produces illegal instructions in RocksDB's LRU cache +FROM --platform=linux/amd64 debian:bookworm-slim AS builder +RUN apt-get update && apt-get install -y --no-install-recommends curl xz-utils ca-certificates && rm -rf /var/lib/apt/lists/* RUN curl -fSL https://ziglang.org/download/0.15.2/zig-x86_64-linux-0.15.2.tar.xz \ | tar xJ -C /opt ENV PATH=/opt/zig-x86_64-linux-0.15.2:$PATH WORKDIR /build COPY . . -RUN zig build -Doptimize=ReleaseSafe -Dcpu=baseline +RUN zig build -Doptimize=ReleaseSafe -Dcpu=baseline -Dtarget=x86_64-linux-gnu -FROM --platform=linux/amd64 alpine:3.21 -RUN apk add --no-cache ca-certificates +FROM --platform=linux/amd64 debian:bookworm-slim +RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* COPY --from=builder /build/zig-out/bin/zlay /usr/local/bin/zlay RUN mkdir -p /data/events /data/collection-index ENV RELAY_DATA_DIR=/data/events -- 2.51.2