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>master
parent
e68c1af4f4
commit
68adfaea25
|
@ -40618,6 +40618,10 @@ Docker Engine, and follow the usual format
|
||||||
@item @code{provision} (default: @code{""}) (type: string)
|
@item @code{provision} (default: @code{""}) (type: string)
|
||||||
Set the name of the provisioned Shepherd service.
|
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)
|
@item @code{network} (default: @code{""}) (type: string)
|
||||||
Set a Docker network for the spawned container.
|
Set a Docker network for the spawned container.
|
||||||
|
|
||||||
|
|
|
@ -320,6 +320,9 @@ found!")
|
||||||
but ~a was found") el))))
|
but ~a was found") el))))
|
||||||
value))
|
value))
|
||||||
|
|
||||||
|
(define list-of-symbols?
|
||||||
|
(list-of symbol?))
|
||||||
|
|
||||||
(define-maybe/no-serialization string)
|
(define-maybe/no-serialization string)
|
||||||
|
|
||||||
(define-configuration/no-serialization oci-container-configuration
|
(define-configuration/no-serialization oci-container-configuration
|
||||||
|
@ -376,6 +379,10 @@ Engine, and follow the usual format
|
||||||
(provision
|
(provision
|
||||||
(maybe-string)
|
(maybe-string)
|
||||||
"Set the name of the provisioned Shepherd service.")
|
"Set the name of the provisioned Shepherd service.")
|
||||||
|
(requirement
|
||||||
|
(list-of-symbols '())
|
||||||
|
"Set additional Shepherd services dependencies to the provisioned Shepherd
|
||||||
|
service.")
|
||||||
(network
|
(network
|
||||||
(maybe-string)
|
(maybe-string)
|
||||||
"Set a Docker network for the spawned container.")
|
"Set a Docker network for the spawned container.")
|
||||||
|
@ -477,6 +484,7 @@ to the @command{docker run} invokation."
|
||||||
(oci-container-configuration-host-environment config))
|
(oci-container-configuration-host-environment config))
|
||||||
(command (oci-container-configuration-command config))
|
(command (oci-container-configuration-command config))
|
||||||
(provision (oci-container-configuration-provision config))
|
(provision (oci-container-configuration-provision config))
|
||||||
|
(requirement (oci-container-configuration-requirement config))
|
||||||
(image (oci-container-configuration-image config))
|
(image (oci-container-configuration-image config))
|
||||||
(options (oci-container-configuration->options config))
|
(options (oci-container-configuration->options config))
|
||||||
(name (guess-name provision image))
|
(name (guess-name provision image))
|
||||||
|
@ -484,7 +492,7 @@ to the @command{docker run} invokation."
|
||||||
(oci-container-configuration-extra-arguments config)))
|
(oci-container-configuration-extra-arguments config)))
|
||||||
|
|
||||||
(shepherd-service (provision `(,(string->symbol name)))
|
(shepherd-service (provision `(,(string->symbol name)))
|
||||||
(requirement '(dockerd user-processes))
|
(requirement `(dockerd user-processes ,@requirement))
|
||||||
(respawn? #f)
|
(respawn? #f)
|
||||||
(documentation
|
(documentation
|
||||||
(string-append
|
(string-append
|
||||||
|
|
Reference in New Issue