refactor: adjust bpfd container runtime detection (#1686)
This commit is contained in:
parent
4e218f2162
commit
b22e993224
|
|
@ -150,6 +150,12 @@ func GetContainerRuntime(tgid, pid int) ContainerRuntime {
|
||||||
return runtime
|
return runtime
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check for container specific files
|
||||||
|
runtime = detectContainerFiles()
|
||||||
|
if runtime != RuntimeNotFound {
|
||||||
|
return runtime
|
||||||
|
}
|
||||||
|
|
||||||
return RuntimeNotFound
|
return RuntimeNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -167,6 +173,28 @@ func getContainerRuntime(input string) ContainerRuntime {
|
||||||
return RuntimeNotFound
|
return RuntimeNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Related implementation: https://github.com/systemd/systemd/blob/6604fb0207ee10e8dc05d67f6fe45de0b193b5c4/src/basic/virt.c#L523-L549
|
||||||
|
func detectContainerFiles() ContainerRuntime {
|
||||||
|
files := []struct {
|
||||||
|
runtime ContainerRuntime
|
||||||
|
location string
|
||||||
|
}{
|
||||||
|
// https://github.com/containers/podman/issues/6192
|
||||||
|
// https://github.com/containers/podman/issues/3586#issuecomment-661918679
|
||||||
|
{RuntimePodman, "/run/.containerenv"},
|
||||||
|
// https://github.com/moby/moby/issues/18355
|
||||||
|
{RuntimeDocker, "/.dockerenv"},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range files {
|
||||||
|
if fileExists(files[i].location) {
|
||||||
|
return files[i].runtime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return RuntimeNotFound
|
||||||
|
}
|
||||||
|
|
||||||
// GetContainerID returns the container ID for a process if it's running in a container.
|
// GetContainerID returns the container ID for a process if it's running in a container.
|
||||||
// If pid is less than one, it returns the container ID for "self".
|
// If pid is less than one, it returns the container ID for "self".
|
||||||
func GetContainerID(tgid, pid int) string {
|
func GetContainerID(tgid, pid int) string {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue