services: dicod: Run in a container.

* gnu/services/dict.scm (dicod-shepherd-service): Add
'with-imported-modules' form and 'modules' field.  Use
'make-forkexec-constructor/container' instead of
'make-forkexec-constructor'.
This commit is contained in:
Ludovic Courtès 2017-11-22 23:16:01 +01:00
parent 0cb9c9d170
commit 9e549ad1c3
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 18 additions and 8 deletions

View File

@ -21,6 +21,7 @@
(define-module (gnu services dict)
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module (guix modules)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (gnu system shadow)
@ -144,14 +145,23 @@ database {
(let ((dicod (file-append (dicod-configuration-dico config)
"/bin/dicod"))
(dicod.conf (dicod-configuration-file config)))
(with-imported-modules (source-module-closure
'((gnu build shepherd)
(gnu system file-systems)))
(list (shepherd-service
(provision '(dicod))
(documentation "Run the dicod daemon.")
(start #~(make-forkexec-constructor
(modules '((gnu build shepherd)
(gnu system file-systems)))
(start #~(make-forkexec-constructor/container
(list #$dicod "--foreground"
(string-append "--config=" #$dicod.conf))
#:user "dicod" #:group "dicod"))
(stop #~(make-kill-destructor))))))
#:user "dicod" #:group "dicod"
#:mappings (list (file-system-mapping
(source "/var/run/dicod")
(target source)
(writable? #t)))))
(stop #~(make-kill-destructor)))))))
(define dicod-service-type
(service-type