mirror of
https://github.com/docker/compose.git
synced 2025-07-21 12:44:54 +02:00
Add mem_reservation option to service config in 2.0 and 2.1 formats
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
31b2d9176b
commit
ec252350ae
@ -74,7 +74,8 @@ DOCKER_CONFIG_KEYS = [
|
|||||||
'labels',
|
'labels',
|
||||||
'links',
|
'links',
|
||||||
'mac_address',
|
'mac_address',
|
||||||
'mem_limit',
|
'mem_limit'
|
||||||
|
'mem_reservation',
|
||||||
'memswap_limit',
|
'memswap_limit',
|
||||||
'mem_swappiness',
|
'mem_swappiness',
|
||||||
'net',
|
'net',
|
||||||
|
@ -138,8 +138,9 @@
|
|||||||
|
|
||||||
"mac_address": {"type": "string"},
|
"mac_address": {"type": "string"},
|
||||||
"mem_limit": {"type": ["number", "string"]},
|
"mem_limit": {"type": ["number", "string"]},
|
||||||
"memswap_limit": {"type": ["number", "string"]},
|
"mem_reservation": {"type": ["string", "integer"]},
|
||||||
"mem_swappiness": {"type": "integer"},
|
"mem_swappiness": {"type": "integer"},
|
||||||
|
"memswap_limit": {"type": ["number", "string"]},
|
||||||
"network_mode": {"type": "string"},
|
"network_mode": {"type": "string"},
|
||||||
|
|
||||||
"networks": {
|
"networks": {
|
||||||
|
@ -161,8 +161,9 @@
|
|||||||
|
|
||||||
"mac_address": {"type": "string"},
|
"mac_address": {"type": "string"},
|
||||||
"mem_limit": {"type": ["number", "string"]},
|
"mem_limit": {"type": ["number", "string"]},
|
||||||
"memswap_limit": {"type": ["number", "string"]},
|
"mem_reservation": {"type": ["string", "integer"]},
|
||||||
"mem_swappiness": {"type": "integer"},
|
"mem_swappiness": {"type": "integer"},
|
||||||
|
"memswap_limit": {"type": ["number", "string"]},
|
||||||
"network_mode": {"type": "string"},
|
"network_mode": {"type": "string"},
|
||||||
|
|
||||||
"networks": {
|
"networks": {
|
||||||
|
@ -62,9 +62,10 @@ DOCKER_START_KEYS = [
|
|||||||
'log_driver',
|
'log_driver',
|
||||||
'log_opt',
|
'log_opt',
|
||||||
'mem_limit',
|
'mem_limit',
|
||||||
|
'mem_reservation',
|
||||||
'memswap_limit',
|
'memswap_limit',
|
||||||
'oom_score_adj',
|
|
||||||
'mem_swappiness',
|
'mem_swappiness',
|
||||||
|
'oom_score_adj',
|
||||||
'pid',
|
'pid',
|
||||||
'privileged',
|
'privileged',
|
||||||
'restart',
|
'restart',
|
||||||
@ -760,6 +761,7 @@ class Service(object):
|
|||||||
cap_add=options.get('cap_add'),
|
cap_add=options.get('cap_add'),
|
||||||
cap_drop=options.get('cap_drop'),
|
cap_drop=options.get('cap_drop'),
|
||||||
mem_limit=options.get('mem_limit'),
|
mem_limit=options.get('mem_limit'),
|
||||||
|
mem_reservation=options.get('mem_reservation'),
|
||||||
memswap_limit=options.get('memswap_limit'),
|
memswap_limit=options.get('memswap_limit'),
|
||||||
ulimits=build_ulimits(options.get('ulimits')),
|
ulimits=build_ulimits(options.get('ulimits')),
|
||||||
log_config=log_config,
|
log_config=log_config,
|
||||||
|
@ -872,6 +872,11 @@ class ServiceTest(DockerClientTestCase):
|
|||||||
container = create_and_start_container(service)
|
container = create_and_start_container(service)
|
||||||
self.assertEqual(container.get('HostConfig.MemorySwappiness'), 11)
|
self.assertEqual(container.get('HostConfig.MemorySwappiness'), 11)
|
||||||
|
|
||||||
|
def test_mem_reservation(self):
|
||||||
|
service = self.create_service('web', mem_reservation='20m')
|
||||||
|
container = create_and_start_container(service)
|
||||||
|
assert container.get('HostConfig.MemoryReservation') == 20 * 1024 * 1024
|
||||||
|
|
||||||
def test_restart_always_value(self):
|
def test_restart_always_value(self):
|
||||||
service = self.create_service('web', restart={'Name': 'always'})
|
service = self.create_service('web', restart={'Name': 'always'})
|
||||||
container = create_and_start_container(service)
|
container = create_and_start_container(service)
|
||||||
|
@ -168,6 +168,20 @@ class ServiceTest(unittest.TestCase):
|
|||||||
2000000000
|
2000000000
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_mem_reservation(self):
|
||||||
|
self.mock_client.create_host_config.return_value = {}
|
||||||
|
|
||||||
|
service = Service(
|
||||||
|
name='foo',
|
||||||
|
image='foo',
|
||||||
|
hostname='name',
|
||||||
|
client=self.mock_client,
|
||||||
|
mem_reservation='512m'
|
||||||
|
)
|
||||||
|
service._get_container_create_options({'some': 'overrides'}, 1)
|
||||||
|
assert self.mock_client.create_host_config.called is True
|
||||||
|
assert self.mock_client.create_host_config.call_args[1]['mem_reservation'] == '512m'
|
||||||
|
|
||||||
def test_cgroup_parent(self):
|
def test_cgroup_parent(self):
|
||||||
self.mock_client.create_host_config.return_value = {}
|
self.mock_client.create_host_config.return_value = {}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user