← The board

L3 The image for a NAS

Area
L — Release & distribution
Audience
operator
Kind
feature
Status
accepted
Maturity
built
Labels
release
Relates to
L1C6E2

The feature in the specification · Read at

Requirements

  1. L3-R1acceptedMUST

    Each release MUST publish an image of lemonfiber for linux/amd64 and linux/arm64, built by the release workflow from that release's own binaries, signed and attested as the release's other artefacts are.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  2. L3-R2acceptedMUST

    The image MUST contain the lemonfiber binary and what it needs to run, and no shell, package manager or second process.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  3. L3-R3acceptedMUST

    Templates for Unraid, a TrueNAS SCALE custom app, a Synology Container Manager project and plain Compose MUST be kept in the core repository under packaging/, MUST name the image by digest, and MUST be attached to each release.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  4. L3-R4acceptedMUST

    lemonfiber running in the image MUST refuse to start a stack whose directory is not mounted at the same path inside the container as on the host, naming both paths.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  5. L3-R5acceptedMUST

    The templates MUST mount the Docker socket, MUST run the container as the host's Docker group where the platform allows rather than as root, and they and the image's documentation MUST state that the socket gives the container control of the host's Docker.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  6. L3-R6acceptedMUST

    The templates MUST publish the web surface on the host's loopback, and lemonfiber in the image MUST keep C6's refusal of a binding beyond loopback without a password.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  7. L3-R7acceptedMUST

    The terminal UI MUST be usable through docker exec.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059
  8. L3-R8acceptedMUST

    lemonfiber in the image MUST NOT replace its own binary, and where it would offer an update MUST give the command to pull the new image and recreate the container.

    locked by
    0.18.0 met
    recorded done
    lemonfiberpackaging/image/Dockerfilescripts/the_templates_name_the_image.pypackaging/README.mdcrates/lemonfiber/tests/architecture/what_a_nas_template_holds.rscrates/lemonfiber-core/src/contained.rscrates/lemonfiber-core/src/app/engine/underneath.rs
    cited by
    lemonfiber@b2d3d48059