~ruther/guix-local

68adfaea25a31247c1555f503839f928ba2e9a04 — Giacomo Leidi 1 year, 9 months ago e68c1af
gnu: docker: Allow setting Shepherd dependencies in oci-container-configuration.

* gnu/services/docker.scm (oci-container-configuration)
[requirement]: New field;
(list-of-symbols): sanitize it;
(oci-container-shepherd-service): use it.
* doc/guix.texi: Document it.

Change-Id: Ic0ba336a2257d6ef7c658cfc6cd630116661f581
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 13 insertions(+), 1 deletions(-)

M doc/guix.texi
M gnu/services/docker.scm
M doc/guix.texi => doc/guix.texi +4 -0
@@ 40618,6 40618,10 @@ Docker Engine, and follow the usual format
@item @code{provision} (default: @code{""}) (type: string)
Set the name of the provisioned Shepherd service.

@item @code{requirement} (default: @code{'()}) (type: list-of-symbols)
Set additional Shepherd services dependencies to the provisioned
Shepherd service.

@item @code{network} (default: @code{""}) (type: string)
Set a Docker network for the spawned container.


M gnu/services/docker.scm => gnu/services/docker.scm +9 -1
@@ 320,6 320,9 @@ found!")
but ~a was found") el))))
   value))

(define list-of-symbols?
  (list-of symbol?))

(define-maybe/no-serialization string)

(define-configuration/no-serialization oci-container-configuration


@@ 376,6 379,10 @@ Engine, and follow the usual format
  (provision
   (maybe-string)
   "Set the name of the provisioned Shepherd service.")
  (requirement
   (list-of-symbols '())
   "Set additional Shepherd services dependencies to the provisioned Shepherd
service.")
  (network
   (maybe-string)
   "Set a Docker network for the spawned container.")


@@ 477,6 484,7 @@ to the @command{docker run} invokation."
          (oci-container-configuration-host-environment config))
         (command (oci-container-configuration-command config))
         (provision (oci-container-configuration-provision config))
         (requirement (oci-container-configuration-requirement config))
         (image (oci-container-configuration-image config))
         (options (oci-container-configuration->options config))
         (name (guess-name provision image))


@@ 484,7 492,7 @@ to the @command{docker run} invokation."
          (oci-container-configuration-extra-arguments config)))

    (shepherd-service (provision `(,(string->symbol name)))
                      (requirement '(dockerd user-processes))
                      (requirement `(dockerd user-processes ,@requirement))
                      (respawn? #f)
                      (documentation
                       (string-append