mirror of
https://github.com/docker/compose.git
synced 2025-07-22 05:04:27 +02:00
Merge pull request #4563 from shin-/3723-mem-reservation
Add mem_reservation option to service config in 2.0 and 2.1 formats
This commit is contained in:
commit
dd4e49ef98
@ -76,7 +76,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',
|
||||||
|
@ -145,8 +145,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": {
|
||||||
|
@ -168,8 +168,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": {
|
||||||
|
@ -64,9 +64,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',
|
||||||
'pids_limit',
|
'pids_limit',
|
||||||
'privileged',
|
'privileged',
|
||||||
@ -766,6 +767,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,
|
||||||
|
@ -880,6 +880,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)
|
||||||
|
@ -170,6 +170,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