Add very basic in_container() function, from sysklogd project

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg committed 2022-03-01 20:46:01 +01:00
1 parent 62dad82ba8
commit 0b1258b44c
2 files changed
+34

No files matched your search

+33
View File
@@ -522,6 +522,39 @@ done:
}
}
/*
* Very basic, and incomplete, check if we're running in a container.
*/
int in_container(void)
{
const char *files[] = {
"/run/.containerenv",
"/.dockerenv"
};
const char *containers[] = {
"lxc",
"docker",
"kubepod"
};
size_t i;
char *c;
c = getenv("container");
if (c) {
for (i = 0; i < NELEMS(containers); i++) {
if (!strcmp(containers[i], c))
return 1;
}
}
for (i = 0; i < NELEMS(files); i++) {
if (!access(files[i], F_OK))
return 1;
}
return 0;
}
#ifndef HAVE_GETFSENT
static lfile_t *fstab = NULL;