summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-12-01 19:50:36 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-12-01 19:52:13 +0100
commit1a63aea94340f6a24ac09e1c348401e9dfd05395 (patch)
treef8ed94ab5d8d2bcc4cb48ecc0df45040ecffce77
parentdf25165530352161d6110466b2c9dbae7dc7e282 (diff)
downloadguix-1a63aea94340f6a24ac09e1c348401e9dfd05395.tar.gz
linux-container: Do not replace nscd-service-type.
* gnu/system/linux-container.scm (containerized-operating-system): Respect
customizations to the nscd-service-type and only modify the caches field.
-rw-r--r--gnu/system/linux-container.scm28
1 files changed, 13 insertions, 15 deletions
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 69080bcacb..c2fd55d48e 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -121,9 +121,7 @@ containerized OS.  EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
     ;; different configs that are better suited to containers.
     (append (list console-font-service-type
                   mingetty-service-type
-                  agetty-service-type
-                  ;; Reinstantiated below with smaller caches.
-                  nscd-service-type)
+                  agetty-service-type)
             (if shared-network?
                 ;; Replace these with dummy-networking-service-type below.
                 (list
@@ -134,17 +132,13 @@ containerized OS.  EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
                 (list))))
 
   (define services-to-add
-    (append
-     ;; Many Guix services depend on a 'networking' shepherd
-     ;; service, so make sure to provide a dummy 'networking'
-     ;; service when we are sure that networking is already set up
-     ;; in the host and can be used.  That prevents double setup.
-     (if shared-network?
-         (list (service dummy-networking-service-type))
-         '())
-     (list
-      (nscd-service (nscd-configuration
-                     (caches %nscd-container-caches))))))
+    ;; Many Guix services depend on a 'networking' shepherd
+    ;; service, so make sure to provide a dummy 'networking'
+    ;; service when we are sure that networking is already set up
+    ;; in the host and can be used.  That prevents double setup.
+    (if shared-network?
+        (list (service dummy-networking-service-type))
+        '()))
 
   (operating-system
     (inherit os)
@@ -155,7 +149,11 @@ containerized OS.  EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
     (services (append (remove (lambda (service)
                                 (memq (service-kind service)
                                       services-to-drop))
-                              (operating-system-user-services os))
+                              (modify-services (operating-system-user-services os)
+                                (nscd-service-type
+                                 config => (nscd-configuration
+                                            (inherit config)
+                                            (caches %nscd-container-caches)))))
                       services-to-add))
     (file-systems (append (map mapping->fs
                                (if shared-network?