diff --git a/components/engine/daemon/execdriver/native/seccomp_default.go b/components/engine/daemon/execdriver/native/seccomp_default.go index 7a03ab527a..28e715b9e3 100644 --- a/components/engine/daemon/execdriver/native/seccomp_default.go +++ b/components/engine/daemon/execdriver/native/seccomp_default.go @@ -6,10 +6,36 @@ import ( "syscall" "github.com/opencontainers/runc/libcontainer/configs" + libseccomp "github.com/seccomp/libseccomp-golang" ) +func arches() []string { + var native, err = libseccomp.GetNativeArch() + if err != nil { + return []string{} + } + var a = native.String() + switch a { + case "amd64": + return []string{"amd64", "x86"} + case "arm64": + return []string{"arm64", "arm"} + case "mips64": + return []string{"mips64", "mips64n32", "mips"} + case "mips64n32": + return []string{"mips64", "mips64n32", "mips"} + case "mipsel64": + return []string{"mipsel64", "mipsel64n32", "mipsel"} + case "mipsel64n32": + return []string{"mipsel64", "mipsel64n32", "mipsel"} + default: + return []string{a} + } +} + var defaultSeccompProfile = &configs.Seccomp{ DefaultAction: configs.Errno, + Architectures: arches(), Syscalls: []*configs.Syscall{ { Name: "accept",