aboutsummaryrefslogtreecommitdiff
path: root/docker/Dockerfile
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-11 02:50:50 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-11 02:50:50 -0500
commitb1ce38db496c9692bca512e6bd76050ef79f61c2 (patch)
treeb97ab46ec2862f1a406594d21f492cca1b1330ef /docker/Dockerfile
parent7821fadddc8af8b1a712b0da02e35534996da422 (diff)
FUSE VFS performance, tracked writes fix, remove steam-run, add NixOS flake
- FUSE: disable AUTO_INVAL_DATA, enable readdirplus, 24h TTLs, clone_fd, FUSE_USE_VERSION=312 — cuts game load time from 2:40 to 1:57 - Fix tracked writes going to wrong (lower-priority) mod in both detectManualMoves and syncOverwrite - Remove steam-run entirely (UI, C++, Rust layers) - Build system: default to tarball, add installer/appimage as opt-in modes - Add flake.nix for NixOS — builds from source with Rust crates as separate pure derivations, FHS wrapper, NixOS module with FUSE passthrough Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'docker/Dockerfile')
-rw-r--r--docker/Dockerfile38
1 files changed, 22 insertions, 16 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 153ff62..7f319e4 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -87,21 +87,27 @@ RUN git clone --depth 1 --branch ${LIBLOOT_REF} \
ldconfig && \
rm -rf /tmp/libloot
-# ── Pre-download linuxdeploy tooling ──
-RUN mkdir -p /opt/linuxdeploy && \
- curl -L --retry 3 -o /opt/linuxdeploy/linuxdeploy-x86_64.AppImage \
- https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && \
- curl -L --retry 3 -o /opt/linuxdeploy/linuxdeploy-plugin-qt-x86_64.AppImage \
- https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage && \
- chmod +x /opt/linuxdeploy/linuxdeploy-x86_64.AppImage \
- /opt/linuxdeploy/linuxdeploy-plugin-qt-x86_64.AppImage && \
- # Extract Qt plugin (avoids FUSE requirement at runtime)
- cd /opt/linuxdeploy && \
- ./linuxdeploy-plugin-qt-x86_64.AppImage --appimage-extract >/dev/null && \
- mv squashfs-root linuxdeploy-plugin-qt.AppDir && \
- chmod +x linuxdeploy-plugin-qt.AppDir/AppRun && \
- ln -sf /opt/linuxdeploy/linuxdeploy-plugin-qt.AppDir/AppRun \
- /opt/linuxdeploy/linuxdeploy-plugin-qt && \
- chmod -x /opt/linuxdeploy/linuxdeploy-plugin-qt-x86_64.AppImage
+# ── Pre-download linuxdeploy tooling (optional, only for AppImage builds) ──
+# Set BUILD_APPIMAGE=1 to include linuxdeploy in the image.
+# Without it, only tarball and installer builds are available.
+ARG BUILD_APPIMAGE=0
+RUN if [ "${BUILD_APPIMAGE}" = "1" ]; then \
+ mkdir -p /opt/linuxdeploy && \
+ curl -L --retry 3 -o /opt/linuxdeploy/linuxdeploy-x86_64.AppImage \
+ https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && \
+ curl -L --retry 3 -o /opt/linuxdeploy/linuxdeploy-plugin-qt-x86_64.AppImage \
+ https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage && \
+ chmod +x /opt/linuxdeploy/linuxdeploy-x86_64.AppImage \
+ /opt/linuxdeploy/linuxdeploy-plugin-qt-x86_64.AppImage && \
+ cd /opt/linuxdeploy && \
+ ./linuxdeploy-plugin-qt-x86_64.AppImage --appimage-extract >/dev/null && \
+ mv squashfs-root linuxdeploy-plugin-qt.AppDir && \
+ chmod +x linuxdeploy-plugin-qt.AppDir/AppRun && \
+ ln -sf /opt/linuxdeploy/linuxdeploy-plugin-qt.AppDir/AppRun \
+ /opt/linuxdeploy/linuxdeploy-plugin-qt && \
+ chmod -x /opt/linuxdeploy/linuxdeploy-plugin-qt-x86_64.AppImage; \
+ else \
+ echo "Skipping linuxdeploy (BUILD_APPIMAGE not set)"; \
+ fi
WORKDIR /build