aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-28 01:59:16 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-28 01:59:16 -0500
commit07ac26ba1ca08f430bd5faae89b98d5b2704c5de (patch)
tree453d74f0a107cd998ba22c4312151b012b60b98d /docker
parent2f5c85ff187d1dc49a8712e1b80c107012cb6a49 (diff)
Add FUSE io_uring toggle and update libfuse
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile25
1 files changed, 24 insertions, 1 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 161706e..c721021 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -10,7 +10,7 @@ ENV PATH="/opt/rust/cargo/bin:${PATH}"
# Python comes from uv (python-build-standalone), not apt.
RUN apt-get update && apt-get install -y --no-install-recommends \
# Build essentials
- build-essential cmake ninja-build ccache \
+ build-essential cmake meson ninja-build ccache \
git curl wget file binutils patchelf pkg-config ca-certificates \
# Library dependencies
libboost-all-dev \
@@ -19,6 +19,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libfontconfig1-dev \
libspdlog-dev \
libfuse3-dev fuse3 libcap-dev \
+ liburing-dev libnuma-dev \
liblz4-dev zlib1g-dev libzstd-dev libbz2-dev liblzma-dev \
libssl-dev libcurl4-openssl-dev \
libtomlplusplus-dev \
@@ -39,6 +40,28 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
clang-tidy \
&& rm -rf /var/lib/apt/lists/*
+# Ubuntu 25.10 currently carries libfuse 3.17.x, which cannot mount with
+# the stable FUSE-over-io_uring option. Build the pinned upstream release
+# so Fluorine compiles and bundles matching 3.18.x headers/runtime.
+ARG LIBFUSE_VERSION=3.18.2
+RUN curl -L --fail \
+ "https://github.com/libfuse/libfuse/releases/download/fuse-${LIBFUSE_VERSION}/fuse-${LIBFUSE_VERSION}.tar.gz" \
+ -o /tmp/libfuse.tar.gz && \
+ tar -xf /tmp/libfuse.tar.gz -C /tmp && \
+ meson setup /tmp/libfuse-build "/tmp/fuse-${LIBFUSE_VERSION}" \
+ --prefix=/usr \
+ --libdir=lib/x86_64-linux-gnu \
+ -Dexamples=false \
+ -Dutils=true \
+ -Dtests=false \
+ -Duseroot=false \
+ -Denable-io-uring=true && \
+ meson compile -C /tmp/libfuse-build && \
+ meson install -C /tmp/libfuse-build && \
+ ldconfig && \
+ test "$(pkg-config --modversion fuse3)" = "${LIBFUSE_VERSION}" && \
+ rm -rf /tmp/libfuse.tar.gz "/tmp/fuse-${LIBFUSE_VERSION}" /tmp/libfuse-build
+
# ── uv (Astral) ──
# Single static binary; manages Python interpreters and packages.
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv