Skip to content

[FEAT] Support OCI Image Volumes for Docker Mods #1148

@dungdm93

Description

@dungdm93

Currently, docker-mods are already packaged and distributed as OCI images. However, the consumption mechanism is not OCI-native: mods are pulled at runtime using curl and extracted into /modcache.

Current Limitations

The current consumption model has several limitations:

  • Mods is OCI images but is not managed as the image. Therefore, the capabilities of the container runtime, such as parallel download (which significantly improves startup time), are not being fully utilized.
  • Cache invalidate: Avoiding repeated downloads requires a persistent /modcache hostPath mount.
  • Cross-container cache sharing: Multiple containers need a shared /modcache volume to avoid downloading the same mod multiple times.

Proposal

Meanwhile, modern container runtimes and orchestrators are moving toward native support for mounting OCI images directly as volumes.

So my proposal is allow docker-mods to be consumed as OCI images mounted as volumes, for example:

services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:10.11.8
    container_name: jellyfin
    volumes:
      - type: image
        source: lscr.io/linuxserver/mods:jellyfin-opencl-intel
        target: /modcache/jellyfin-opencl-intel
        read_only: true
    ports:
      - 8096:8096

Benefits

  • Standardized distribution: Mods become OCI artifacts, leveraging existing registry workflows (push/pull/inspect/signing).
  • Improved reproducibility: Eliminates runtime download variability and cache state issues.
  • Reduced host dependency: No need for shared hostPath volume between containers.
  • Better lifecycle alignment: Mod versioning becomes consistent with container image versioning.
  • Easier automation & CI/CD integration: Mods can be built and published like any other container artifact.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions