diff options
Diffstat (limited to 'src/librc')
-rw-r--r-- | src/librc/librc.c | 4 | ||||
-rw-r--r-- | src/librc/rc.h.in | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/librc/librc.c b/src/librc/librc.c index 5e5de8d8..cad80333 100644 --- a/src/librc/librc.c +++ b/src/librc/librc.c @@ -269,6 +269,8 @@ rc_sys(void) return RC_SYS_LXC; if (strcmp(systype, RC_SYS_SYSTEMD_NSPAWN) == 0) return RC_SYS_SYSTEMD_NSPAWN; + if (strcmp(systype, RC_SYS_DOCKER) == 0) + return RC_SYS_DOCKER; } if (exists("/proc/xen")) { if (file_regex("/proc/xen/capabilities", "control_d")) @@ -288,6 +290,8 @@ rc_sys(void) return RC_SYS_LXC; else if (file_regex("/proc/1/environ", "container=systemd-nspawn")) return RC_SYS_SYSTEMD_NSPAWN; + else if (file_regex("/proc/1/environ", "container=docker")) + return RC_SYS_DOCKER; #endif return NULL; diff --git a/src/librc/rc.h.in b/src/librc/rc.h.in index 141ecb97..360c26a1 100644 --- a/src/librc/rc.h.in +++ b/src/librc/rc.h.in @@ -329,6 +329,7 @@ bool rc_service_daemons_crashed(const char *); /*! @name System types * OpenRC can support some special sub system types, normally virtualization. * Some services cannot work in these systems, or we do something else. */ +#define RC_SYS_DOCKER "DOCKER" #define RC_SYS_JAIL "JAIL" #define RC_SYS_OPENVZ "OPENVZ" #define RC_SYS_LXC "LXC" |