Gentoo Archives: gentoo-commits

From: William Hubbs <williamh@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/openrc:master commit in: src/librc/, man/, etc/
Date: Wed, 02 Dec 2015 16:22:40
Message-Id: 1449073215.9fedb3b40b5983372b2c2de29dfe321c6dfaadf4.williamh@OpenRC
1 commit: 9fedb3b40b5983372b2c2de29dfe321c6dfaadf4
2 Author: William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
3 AuthorDate: Wed Dec 2 00:20:02 2015 +0000
4 Commit: William Hubbs <williamh <AT> gentoo <DOT> org>
5 CommitDate: Wed Dec 2 16:20:15 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/openrc.git/commit/?id=9fedb3b4
7
8 Add detection for docker containers
9
10 etc/rc.conf.Linux | 1 +
11 man/openrc-run.8 | 2 ++
12 src/librc/librc.c | 4 ++++
13 src/librc/rc.h.in | 1 +
14 4 files changed, 8 insertions(+)
15
16 diff --git a/etc/rc.conf.Linux b/etc/rc.conf.Linux
17 index f04f96e..0865075 100644
18 --- a/etc/rc.conf.Linux
19 +++ b/etc/rc.conf.Linux
20 @@ -3,6 +3,7 @@
21
22 # This is the subsystem type. Valid options on Linux:
23 # "" - nothing special
24 +# "docker" - Docker container manager
25 # "lxc" - Linux Containers
26 # "openvz" - Linux OpenVZ
27 # "prefix" - Prefix
28
29 diff --git a/man/openrc-run.8 b/man/openrc-run.8
30 index 12c1919..9e0e776 100644
31 --- a/man/openrc-run.8
32 +++ b/man/openrc-run.8
33 @@ -223,6 +223,8 @@ Same as -jail, but for VServer systems.
34 Same as -jail, but for Xen DOM0 systems.
35 .It Dv -xenu
36 Same as -jail, but for Xen DOMU systems.
37 +.It Dv -docker
38 +Same as -jail, but for docker systems.
39 .El
40 .El
41 .Pp
42
43 diff --git a/src/librc/librc.c b/src/librc/librc.c
44 index 5e5de8d..cad8033 100644
45 --- a/src/librc/librc.c
46 +++ b/src/librc/librc.c
47 @@ -269,6 +269,8 @@ rc_sys(void)
48 return RC_SYS_LXC;
49 if (strcmp(systype, RC_SYS_SYSTEMD_NSPAWN) == 0)
50 return RC_SYS_SYSTEMD_NSPAWN;
51 + if (strcmp(systype, RC_SYS_DOCKER) == 0)
52 + return RC_SYS_DOCKER;
53 }
54 if (exists("/proc/xen")) {
55 if (file_regex("/proc/xen/capabilities", "control_d"))
56 @@ -288,6 +290,8 @@ rc_sys(void)
57 return RC_SYS_LXC;
58 else if (file_regex("/proc/1/environ", "container=systemd-nspawn"))
59 return RC_SYS_SYSTEMD_NSPAWN;
60 + else if (file_regex("/proc/1/environ", "container=docker"))
61 + return RC_SYS_DOCKER;
62 #endif
63
64 return NULL;
65
66 diff --git a/src/librc/rc.h.in b/src/librc/rc.h.in
67 index 141ecb9..360c26a 100644
68 --- a/src/librc/rc.h.in
69 +++ b/src/librc/rc.h.in
70 @@ -329,6 +329,7 @@ bool rc_service_daemons_crashed(const char *);
71 /*! @name System types
72 * OpenRC can support some special sub system types, normally virtualization.
73 * Some services cannot work in these systems, or we do something else. */
74 +#define RC_SYS_DOCKER "DOCKER"
75 #define RC_SYS_JAIL "JAIL"
76 #define RC_SYS_OPENVZ "OPENVZ"
77 #define RC_SYS_LXC "LXC"