me
/
guix
Archived
1
0
Fork 0

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
Giacomo Leidi 2024-05-04 00:11:15 +02:00 committed by Ludovic Courtès
parent e68c1af4f4
commit 68adfaea25
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 13 additions and 1 deletions

View File

@ -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.

View File

@ -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