diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-02-06 23:48:48 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-02-07 00:08:11 +0100 |
commit | a062b6ca99ad61c9df473fe49a93d69f9698c59d (patch) | |
tree | a2197d19483ffdbd406bd1bdfcb2fe24df226ff3 | |
parent | 63302a4e55241a41eab4c21d7af9fbd0d5817459 (diff) | |
download | patches-a062b6ca99ad61c9df473fe49a93d69f9698c59d.tar patches-a062b6ca99ad61c9df473fe49a93d69f9698c59d.tar.gz |
services: bitlbee: Run in a container.
* gnu/services/networking.scm (bitlbee-shepherd-service): Wrap in
'with-imported-modules' and add 'modules' field. Use
'make-forkexec-constructor/container' and pass #:mappings.
-rw-r--r-- | gnu/services/networking.scm | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index ba04a96d6d..b63888cadb 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages gnome) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (guix modules) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) @@ -624,14 +625,29 @@ project's documentation} for more information." DaemonPort = " (number->string port) " " extra-settings)))) - (list (shepherd-service - (provision '(bitlbee)) - (requirement '(user-processes loopback)) - (start #~(make-forkexec-constructor - (list (string-append #$bitlbee "/sbin/bitlbee") - "-n" "-F" "-u" "bitlbee" "-c" #$conf) - #:pid-file "/var/run/bitlbee.pid")) - (stop #~(make-kill-destructor)))))))) + (with-imported-modules (source-module-closure + '((gnu build shepherd) + (gnu system file-systems))) + (list (shepherd-service + (provision '(bitlbee)) + + ;; Note: If networking is not up, then /etc/resolv.conf + ;; doesn't get mapped in the container, hence the dependency + ;; on 'networking'. + (requirement '(user-processes networking)) + + (modules '((gnu build shepherd) + (gnu system file-systems))) + (start #~(make-forkexec-constructor/container + (list #$(file-append bitlbee "/sbin/bitlbee") + "-n" "-F" "-u" "bitlbee" "-c" #$conf) + + #:pid-file "/var/run/bitlbee.pid" + #:mappings (list (file-system-mapping + (source "/var/lib/bitlbee") + (target source) + (writable? #t))))) + (stop #~(make-kill-destructor))))))))) (define %bitlbee-accounts ;; User group and account to run BitlBee. |