Files
jormun-db/Dockerfile

61 lines
1.2 KiB
Docker

# 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
ENTRYPOINT ["./jormundb"]