diff options
-rw-r--r-- | runsc/container/container.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/runsc/container/container.go b/runsc/container/container.go index 21a01b5de..878432dbb 100644 --- a/runsc/container/container.go +++ b/runsc/container/container.go @@ -327,7 +327,16 @@ func New(conf *boot.Config, args Args) (*Container, error) { if cg != nil { // If there is cgroup config, install it before creating sandbox process. if err := cg.Install(args.Spec.Linux.Resources); err != nil { - return nil, fmt.Errorf("configuring cgroup: %v", err) + switch { + case errors.Is(err, syscall.EROFS) && conf.TestOnlyAllowRunAsCurrentUserWithoutChroot: + log.Warningf("Skipping cgroup configuration in test mode: %v", err) + cg = nil + case errors.Is(err, syscall.EACCES) && conf.Rootless: + log.Warningf("Skipping cgroup configuration in rootless mode: %v", err) + cg = nil + default: + return nil, fmt.Errorf("configuring cgroup: %v", err) + } } } if err := runInCgroup(cg, func() error { |