summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2015-09-15 01:08:09 +0200
committerJoffrey F <joffrey@docker.com>2015-09-15 01:11:11 +0200
commit0610efbce0e7c6bfe15e8eedc3f95877bf5ac481 (patch)
tree44d2be366ed4e04f3bb9679d7e094a709d87717d
parente5fbc42dcb25a1cd613cbe3ba69a1dde9b176bad (diff)
downloaddocker-py-0610efbce0e7c6bfe15e8eedc3f95877bf5ac481.tar.gz
Support group_add param in host configgroup_add_support
Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r--docker/utils/utils.py9
-rw-r--r--docs/hostconfig.md21
2 files changed, 22 insertions, 8 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py
index edd6fa9..6084efb 100644
--- a/docker/utils/utils.py
+++ b/docker/utils/utils.py
@@ -449,7 +449,7 @@ def create_host_config(
restart_policy=None, cap_add=None, cap_drop=None, devices=None,
extra_hosts=None, read_only=None, pid_mode=None, ipc_mode=None,
security_opt=None, ulimits=None, log_config=None, mem_limit=None,
- memswap_limit=None, cgroup_parent=None, version=None
+ memswap_limit=None, cgroup_parent=None, group_add=None, version=None
):
host_config = {}
@@ -509,6 +509,13 @@ def create_host_config(
if devices:
host_config['Devices'] = parse_devices(devices)
+ if group_add:
+ if compare_version(version, '1.20') < 0:
+ raise errors.InvalidVersion(
+ 'group_add param not supported for API version < 1.20'
+ )
+ host_config['GroupAdd'] = [str(grp) for grp in group_add]
+
if dns is not None:
host_config['Dns'] = dns
diff --git a/docs/hostconfig.md b/docs/hostconfig.md
index eb796a5..eea9d1c 100644
--- a/docs/hostconfig.md
+++ b/docs/hostconfig.md
@@ -1,6 +1,7 @@
# HostConfig object
-The Docker Remote API introduced [support for HostConfig in version 1.15](http://docs.docker.com/reference/api/docker_remote_api_v1.15/#create-a-container). This object contains all the parameters you could previously pass to `Client.start`.
+The Docker Remote API introduced [support for HostConfig in version 1.15](http://docs.docker.com/reference/api/docker_remote_api_v1.15/#create-a-container).
+This object contains all the parameters you could previously pass to `Client.start`.
*It is highly recommended that users pass the HostConfig in the `host_config`*
*param of `Client.create_container` instead of `Client.start`*
@@ -71,15 +72,16 @@ for example:
for more information.
* lxc_conf (dict): LXC config
* publish_all_ports (bool): Whether to publish all ports to the host
-* links (dict or list of tuples): either as a dictionary mapping name to alias or
- as a list of `(name, alias)` tuples
+* links (dict or list of tuples): either as a dictionary mapping name to alias
+ or as a list of `(name, alias)` tuples
* privileged (bool): Give extended privileges to this container
* dns (list): Set custom DNS servers
* dns_search (list): DNS search domains
* volumes_from (str or list): List of container names or Ids to get volumes
from. Optionally a single string joining container id's with commas
* network_mode (str): One of `['bridge', None, 'container:<name|id>', 'host']`
-* restart_policy (dict): "Name" param must be one of `['on-failure', 'always']`
+* restart_policy (dict): "Name" param must be one of
+ `['on-failure', 'always']`
* cap_add (list of str): Add kernel capabilities
* cap_drop (list of str): Drop kernel capabilities
* extra_hosts (dict): custom host-to-IP mappings (host:ip)
@@ -91,9 +93,14 @@ for example:
systems, such as SELinux.
* ulimits (list): A list of dicts or `docker.utils.Ulimit` objects. A list
of ulimits to be set in the container.
-* log_config (`docker.utils.LogConfig` or dict): Logging configuration to container
-* mem_limit (str or num): Maximum amount of memory container is allowed to consume. (e.g. `'1g'`)
-* memswap_limit (str or num): Maximum amount of memory + swap a container is allowed to consume.
+* log_config (`docker.utils.LogConfig` or dict): Logging configuration to
+ container
+* mem_limit (str or num): Maximum amount of memory container is allowed to
+ consume. (e.g. `'1g'`)
+* memswap_limit (str or num): Maximum amount of memory + swap a container is
+ allowed to consume.
+* group_add (list): List of additional group names and/or IDs that the
+ container process will run as.
**Returns** (dict) HostConfig dictionary