Containerfile 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # usmrad — Rapid Application Deployment supervisor image (Fedora).
  2. #
  3. # Build context: the repo root (nothing local is required — USM and usmrad
  4. # both arrive via the hosted installer, which bundles usmrad):
  5. #
  6. # podman build -f containers/usmrad-fedora/Containerfile -t usmrad-fedora .
  7. #
  8. # git is required by usmrad at runtime and curl for https fetches; the
  9. # installer carries bash itself. The installer auto-detects dnf on PATH,
  10. # wires the usm-spm-dnf helper plus the lib64 libdir into the generated
  11. # usm.config, and shims both usm and usmrad into /usr/bin.
  12. #
  13. # The system is enrolled and the web-stack repository added at build time so
  14. # its packages (statum, astralis, inversion, the invercargill libraries, …)
  15. # resolve immediately; USMRAD_USM_REPOS adds further repositories at runtime.
  16. #
  17. # Run pattern:
  18. #
  19. # podman run --rm \
  20. # -e USMRAD_REPO=https://git.example/my-app.git \
  21. # -e USMRAD_BRANCH=main \
  22. # -e USMRAD_POLL=1 \
  23. # -v ./data:/app/pwd \
  24. # usmrad-fedora my-app --port 8080
  25. FROM fedora:latest
  26. # python3-dnf is the SPM helper's container bootstrap (README: System
  27. # package manager integration) — the base image ships no dnf python module
  28. RUN dnf install -y git curl ca-certificates python3-dnf && dnf clean all
  29. RUN curl -fsSL https://packages.astrologue.nz/install-usm.sh -o /tmp/install-usm.sh \
  30. && bash /tmp/install-usm.sh -y \
  31. && rm /tmp/install-usm.sh
  32. RUN usm enroll -y \
  33. && usm add-repo -y https://packages.astrologue.nz/repo/web-stack/repo.usmr
  34. ENTRYPOINT ["usmrad"]