summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonid Mirsky <leonidlm@gmail.com>2014-08-05 11:40:08 +0300
committerLeonid Mirsky <leonidlm@gmail.com>2014-08-05 11:40:08 +0300
commit019468dad8330f183e06a9d030701b3906bfc73e (patch)
treec850292971edb096ea0b012dd9bb78ad6d2ec90c
parent14f9c07b01b57b58b447bd6a1145d1c0e1a72f88 (diff)
downloaddocker-py-019468dad8330f183e06a9d030701b3906bfc73e.tar.gz
Adding units specification to mem_limit variable
-rw-r--r--README.md2
-rw-r--r--docker/client.py8
2 files changed, 10 insertions, 0 deletions
diff --git a/README.md b/README.md
index 94e424a..3c52a5f 100644
--- a/README.md
+++ b/README.md
@@ -81,6 +81,8 @@ more information on how to create port bindings and volume mappings.
The `environment` variable accepts a dictionary or a list of strings
in the following format `["PASSWORD=xxx"]` or `{"PASSWORD": "xxx"}`.
+The `mem_limit` variable accepts float values (which represent the memory limit of the created container in bytes) or a string with a units identification char ('1000k', 128m', '1g').
+
`volumes_from` and `dns` arguments raise TypeError exception if they are used
against v1.10 of docker remote API. Those arguments should be passed to
`start()` instead.
diff --git a/docker/client.py b/docker/client.py
index a7f1f49..22aedf5 100644
--- a/docker/client.py
+++ b/docker/client.py
@@ -111,6 +111,14 @@ class Client(requests.Session):
'{0}={1}'.format(k, v) for k, v in environment.items()
]
+ if isinstance(mem_limit, six.string_types):
+ units = {'k': 1024,
+ 'm': 1024*1024,
+ 'g': 1024*1024*1024}
+ suffix = mem_limit[-1].lower()
+ if suffix in units.keys():
+ mem_limit = int(mem_limit[:-1]) * units[suffix]
+
if isinstance(ports, list):
exposed_ports = {}
for port_definition in ports: