me
/
guix
Archived
1
0
Fork 0

services: oci-container: Allow setting Shepherd auto-start? in oci-container-configuration.

* gnu/services/docker.scm (oci-container-configuration)
[auto-start?]: New field.
(oci-container-shepherd-service): use it.

* doc/guix.texi: Document it.

Change-Id: Id093d93effbbec3e1be757f8be83cf5f62eaeda7
Signed-off-by: Zheng Junjie <zhengjunjie@iscas.ac.cn>
master
Giacomo Leidi via Guix-patches via 2024-06-11 22:04:58 +02:00 committed by Zheng Junjie
parent 30ba86cb71
commit 7d91bd4530
No known key found for this signature in database
GPG Key ID: 3B5AA993E1A2DFF0
2 changed files with 12 additions and 0 deletions

View File

@ -40890,6 +40890,10 @@ When @code{log-file} is set, it names the file to which the service's
standard output and standard error are redirected. @code{log-file} is created standard output and standard error are redirected. @code{log-file} is created
if it does not exist, otherwise it is appended to. if it does not exist, otherwise it is appended to.
@item @code{auto-start?} (default: @code{#t}) (type: boolean)
Whether this service should be started automatically by the Shepherd. If it
is @code{#f} the service has to be started manually with @command{herd start}.
@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

@ -75,6 +75,7 @@
oci-container-configuration-provision oci-container-configuration-provision
oci-container-configuration-requirement oci-container-configuration-requirement
oci-container-configuration-log-file oci-container-configuration-log-file
oci-container-configuration-auto-start?
oci-container-configuration-network oci-container-configuration-network
oci-container-configuration-ports oci-container-configuration-ports
oci-container-configuration-volumes oci-container-configuration-volumes
@ -467,6 +468,10 @@ service.")
"When @code{log-file} is set, it names the file to which the services "When @code{log-file} is set, it names the file to which the services
standard output and standard error are redirected. @code{log-file} is created standard output and standard error are redirected. @code{log-file} is created
if it does not exist, otherwise it is appended to.") if it does not exist, otherwise it is appended to.")
(auto-start?
(boolean #t)
"Whether this service should be started automatically by the Shepherd. If it
is @code{#f} the service has to be started manually with @command{herd start}.")
(network (network
(maybe-string) (maybe-string)
"Set a Docker network for the spawned container.") "Set a Docker network for the spawned container.")
@ -670,6 +675,8 @@ operating-system, gexp or file-like records but ~a was found")
(oci-image-repository image)))))) (oci-image-repository image))))))
(let* ((docker (file-append docker-cli "/bin/docker")) (let* ((docker (file-append docker-cli "/bin/docker"))
(auto-start?
(oci-container-configuration-auto-start? config))
(user (oci-container-configuration-user config)) (user (oci-container-configuration-user config))
(group (oci-container-configuration-group config)) (group (oci-container-configuration-group config))
(host-environment (host-environment
@ -688,6 +695,7 @@ operating-system, gexp or file-like records but ~a was found")
(shepherd-service (provision `(,(string->symbol name))) (shepherd-service (provision `(,(string->symbol name)))
(requirement `(dockerd user-processes ,@requirement)) (requirement `(dockerd user-processes ,@requirement))
(respawn? #f) (respawn? #f)
(auto-start? auto-start?)
(documentation (documentation
(string-append (string-append
"Docker backed Shepherd service for " "Docker backed Shepherd service for "