~ruther/guix-local

9e549ad1c3a576eed1fb095a2d14613bce83b9ee — Ludovic Courtès 8 years ago 0cb9c9d
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'.
1 files changed, 18 insertions(+), 8 deletions(-)

M gnu/services/dict.scm
M gnu/services/dict.scm => gnu/services/dict.scm +18 -8
@@ 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)))
    (list (shepherd-service
           (provision '(dicod))
           (documentation "Run the dicod daemon.")
           (start #~(make-forkexec-constructor
                     (list #$dicod "--foreground"
                           (string-append "--config=" #$dicod.conf))
                     #:user "dicod" #:group "dicod"))
          (stop #~(make-kill-destructor))))))
    (with-imported-modules (source-module-closure
                            '((gnu build shepherd)
                              (gnu system file-systems)))
      (list (shepherd-service
             (provision '(dicod))
             (documentation "Run the dicod daemon.")
             (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"
                       #:mappings (list (file-system-mapping
                                         (source "/var/run/dicod")
                                         (target source)
                                         (writable? #t)))))
             (stop #~(make-kill-destructor)))))))

(define dicod-service-type
  (service-type