diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 94cfa2bdb7..8f80cd54d8 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -25,6 +25,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system python) @@ -655,3 +656,36 @@ provisioning etc.") way to run commands in the current directory, but within a Docker container defined in a per-project configuration file.") (license license:gpl3+))) + +(define-public tini + (package + (name "tini") + (version "0.18.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/krallin/tini.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;tests require a Docker daemon + #:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-static-build + ;; Disable the static build as it fails to install, with + ;; the error: "No valid ELF RPATH or RUNPATH entry exists + ;; in the file". + (lambda _ + (substitute* "CMakeLists.txt" + ((".*tini-static.*") "")) + #t))))) + (home-page "https://github.com/krallin/tini") + (synopsis "Tiny but valid init for containers") + (description "Tini is an init program specifically designed for use with +containers. It manages a single child process and ensures that any zombie +processes produced from it are reaped and that signals are properly forwarded. +Tini is integrated with Docker.") + (license license:expat)))