mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
linux-container: ‘containerized-operating-system’ provides ‘loopback’ service.
Fixes #420. Previously, in systems produced by ‘guix system container’, the ‘loopback’ Shepherd service would fail to start with EEXIST, because the “lo” interface already exists in the container. This commit provides a fake ‘loopback’ Shepherd service that does nothing. * gnu/system/linux-container.scm (dummy-networking-service-type): Change to honor its configuration value. (containerized-operating-system)[services-to-drop]: Add ‘static-networking-service-type’ in the non-‘shared-network?’ case. [services-to-add]: Add ‘dummy-networking-service-type’ for loopback in the non-‘shared-network?’ case. Reported-by: Antonio Carlos Padoan Junior <acpadoanjr@yahoo.com.br> Change-Id: I326b5f3b5e08f67b6613c186497c44b1e887b02e
This commit is contained in:
parent
1ed9af7586
commit
ed5988f0d2
1 changed files with 11 additions and 8 deletions
|
@ -78,12 +78,13 @@ from OS that are needed on the bare metal and not in a container."
|
|||
(define dummy-networking-service-type
|
||||
(shepherd-service-type
|
||||
'dummy-networking
|
||||
(const (shepherd-service
|
||||
(lambda (provision)
|
||||
(shepherd-service
|
||||
(documentation "Provide loopback and networking without actually
|
||||
doing anything.")
|
||||
(provision '(loopback networking))
|
||||
(provision provision)
|
||||
(start #~(const #t))))
|
||||
#f
|
||||
'(loopback networking)
|
||||
(description "Provide loopback and networking without actually doing
|
||||
anything. This service is used by guest systems running in containers, where
|
||||
networking support is provided by the host.")))
|
||||
|
@ -135,7 +136,7 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
|
|||
dhcp-client-service-type
|
||||
network-manager-service-type
|
||||
connman-service-type)
|
||||
(list))))
|
||||
(list static-networking-service-type)))) ;loopback
|
||||
|
||||
(define services-to-add
|
||||
;; Many Guix services depend on a 'networking' shepherd
|
||||
|
@ -143,8 +144,10 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
|
|||
;; 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 (service dummy-networking-service-type
|
||||
'(loopback networking)))
|
||||
(list (service dummy-networking-service-type
|
||||
'(loopback)))))
|
||||
|
||||
(define os-with-base-essential-services
|
||||
(operating-system
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue