diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-03-13 23:10:19 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-03-13 23:12:44 +0100 |
commit | b94c80ff5d844f7763738ab5359fee72f11f9367 (patch) | |
tree | 9948fa92b84b443a9a41ff1e37a42181980c1884 | |
parent | e1c15e8b8e25e14c253ff1212e289565736f6ea7 (diff) | |
download | patches-b94c80ff5d844f7763738ab5359fee72f11f9367.tar patches-b94c80ff5d844f7763738ab5359fee72f11f9367.tar.gz |
linux-container: 'containerized-operating-system' removes "useless" services.
Fixes <https://bugs.gnu.org/34211>.
Reported by Efraim Flashner <efraim@flashner.co.il>.
* gnu/system/linux-container.scm (containerized-operating-system)
[useless-services]: New variable.
Add 'services' field.
-rw-r--r-- | gnu/system/linux-container.scm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index bceea41332..3fe3482d7f 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +28,7 @@ #:use-module (guix modules) #:use-module (gnu build linux-container) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu system) #:use-module (gnu system file-systems) #:export (system-container @@ -54,8 +55,19 @@ containerized OS." (file-system (inherit (file-system-mapping->bind-mount fs)) (needed-for-boot? #t))) + (define useless-services + ;; Services that make no sense in a container. Those that attempt to + ;; access /dev/tty[0-9] in particular cannot work in a container. + (list console-font-service-type + mingetty-service-type + agetty-service-type)) + (operating-system (inherit os) (swap-devices '()) ; disable swap + (services (remove (lambda (service) + (memq (service-kind service) + useless-services)) + (operating-system-user-services os))) (file-systems (append (map mapping->fs (cons %store-mapping mappings)) %container-file-systems user-file-systems)))) |