diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-03-11 02:50:50 -0500 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-03-11 02:50:50 -0500 |
| commit | b1ce38db496c9692bca512e6bd76050ef79f61c2 (patch) | |
| tree | b97ab46ec2862f1a406594d21f492cca1b1330ef /docker/Dockerfile | |
| parent | 7821fadddc8af8b1a712b0da02e35534996da422 (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/Dockerfile | 38 |
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 |
