mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
linux-container: Handle CLONE_NEWCGROUP and use it by default.
Adds low-level support for launching Linux containers with cgroup namespaces. * gnu/build/linux-container.scm (%namespaces): Add 'cgroup. (namespaces->bit-mask): Handle it. * guix/build/syscalls.scm (CLONE_NEWCGROUP): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
2c1807c516
commit
bfdeba11f8
2 changed files with 4 additions and 1 deletions
|
@ -52,7 +52,7 @@ (define (setgroups-supported?)
|
|||
(file-exists? "/proc/self/setgroups"))
|
||||
|
||||
(define %namespaces
|
||||
'(mnt pid ipc uts user net))
|
||||
'(cgroup mnt pid ipc uts user net))
|
||||
|
||||
(define (call-with-clean-exit thunk)
|
||||
"Apply THUNK, but exit with a status code of 1 if it fails."
|
||||
|
@ -210,6 +210,7 @@ (define (namespaces->bit-mask namespaces)
|
|||
;; Use the same flags as fork(3) in addition to the namespace flags.
|
||||
(apply logior SIGCHLD
|
||||
(map (match-lambda
|
||||
('cgroup CLONE_NEWCGROUP)
|
||||
('mnt CLONE_NEWNS)
|
||||
('uts CLONE_NEWUTS)
|
||||
('ipc CLONE_NEWIPC)
|
||||
|
|
|
@ -132,6 +132,7 @@ (define-module (guix build syscalls)
|
|||
|
||||
CLONE_CHILD_CLEARTID
|
||||
CLONE_CHILD_SETTID
|
||||
CLONE_NEWCGROUP
|
||||
CLONE_NEWNS
|
||||
CLONE_NEWUTS
|
||||
CLONE_NEWIPC
|
||||
|
@ -1025,6 +1026,7 @@ (define (add-to-entropy-count port-or-fd n)
|
|||
;; Linux clone flags, from linux/sched.h
|
||||
(define CLONE_CHILD_CLEARTID #x00200000)
|
||||
(define CLONE_CHILD_SETTID #x01000000)
|
||||
(define CLONE_NEWCGROUP #x02000000)
|
||||
(define CLONE_NEWNS #x00020000)
|
||||
(define CLONE_NEWUTS #x04000000)
|
||||
(define CLONE_NEWIPC #x08000000)
|
||||
|
|
Loading…
Reference in a new issue