# Stage 1: Builder FROM ubuntu:24.04 AS builder RUN apt-get update && apt-get install -y \ build-essential \ g++ \ librocksdb-dev \ libsnappy-dev \ liblz4-dev \ libzstd-dev \ zlib1g-dev \ libbz2-dev \ curl \ clang \ && rm -rf /var/lib/apt/lists/* # Install Odin compiler RUN curl -Lo /tmp/odin.tar.gz https://github.com/odin-lang/Odin/releases/download/dev-2026-02/odin-linux-amd64-dev-2026-02.tar.gz \ && tar -xzf /tmp/odin.tar.gz -C /tmp \ && mv /tmp/odin-linux-amd64-nightly+2026-02-04 /opt/odin \ && ln -s /opt/odin/odin /usr/local/bin/odin \ && chmod +x /opt/odin/odin \ && odin version \ && rm /tmp/odin.tar.gz WORKDIR /app COPY . . # just use the make file RUN make release # Stage 2: Runtime for deployment FROM ubuntu:24.04 AS runtime # Only runtime shared libs RUN apt-get update && apt-get install -y \ librocksdb8.9 \ libsnappy1v5 \ liblz4-1 \ libzstd1 \ zlib1g \ libbz2-1.0 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # only need the compiled binary from the builder stage COPY --from=builder /app/build/jormundb . RUN mkdir -p /data #USER jormun EXPOSE 8002 VOLUME ["/data"] ENV JORMUN_HOST=0.0.0.0 ENV JORMUN_PORT=8002 ENV JORMUN_DATA_DIR=/data ENV JORMUN_VERBOSE=0 ENTRYPOINT ["./jormundb"]