Kaydet (Commit) 8ea6ecc0 authored tarafından Tomasz Madycki's avatar Tomasz Madycki Kaydeden (comit) Joffrey F

Add init_path parameter to container HostConfig

Signed-off-by: 's avatarTomasz Madycki <tomasz.madycki@gmail.com>
üst b00dd488
...@@ -493,6 +493,7 @@ class ContainerCollection(Collection): ...@@ -493,6 +493,7 @@ class ContainerCollection(Collection):
hostname (str): Optional hostname for the container. hostname (str): Optional hostname for the container.
init (bool): Run an init inside the container that forwards init (bool): Run an init inside the container that forwards
signals and reaps processes signals and reaps processes
init_path (bool): Path to the docker-init binary
ipc_mode (str): Set the IPC mode for the container. ipc_mode (str): Set the IPC mode for the container.
isolation (str): Isolation technology to use. Default: `None`. isolation (str): Isolation technology to use. Default: `None`.
labels (dict or list): A dictionary of name-value labels (e.g. labels (dict or list): A dictionary of name-value labels (e.g.
...@@ -817,6 +818,7 @@ RUN_HOST_CONFIG_KWARGS = [ ...@@ -817,6 +818,7 @@ RUN_HOST_CONFIG_KWARGS = [
'extra_hosts', 'extra_hosts',
'group_add', 'group_add',
'init', 'init',
'init_path',
'ipc_mode', 'ipc_mode',
'isolation', 'isolation',
'kernel_memory', 'kernel_memory',
......
...@@ -118,7 +118,7 @@ class HostConfig(dict): ...@@ -118,7 +118,7 @@ class HostConfig(dict):
tmpfs=None, oom_score_adj=None, dns_opt=None, cpu_shares=None, tmpfs=None, oom_score_adj=None, dns_opt=None, cpu_shares=None,
cpuset_cpus=None, userns_mode=None, pids_limit=None, cpuset_cpus=None, userns_mode=None, pids_limit=None,
isolation=None, auto_remove=False, storage_opt=None, isolation=None, auto_remove=False, storage_opt=None,
init=None): init=None, init_path=None):
if mem_limit is not None: if mem_limit is not None:
self['Memory'] = parse_bytes(mem_limit) self['Memory'] = parse_bytes(mem_limit)
...@@ -423,6 +423,11 @@ class HostConfig(dict): ...@@ -423,6 +423,11 @@ class HostConfig(dict):
raise host_config_version_error('init', '1.25') raise host_config_version_error('init', '1.25')
self['Init'] = init self['Init'] = init
if init_path:
if version_lt(version, '1.25'):
raise host_config_version_error('init', '1.25')
self['InitPath'] = init_path
def host_config_type_error(param, param_value, expected): def host_config_type_error(param, param_value, expected):
error_msg = 'Invalid type for {0} param: expected {1} but found {2}' error_msg = 'Invalid type for {0} param: expected {1} but found {2}'
......
...@@ -451,6 +451,18 @@ class CreateContainerTest(BaseAPIIntegrationTest): ...@@ -451,6 +451,18 @@ class CreateContainerTest(BaseAPIIntegrationTest):
config = self.client.inspect_container(ctnr) config = self.client.inspect_container(ctnr)
assert config['HostConfig']['Init'] is True assert config['HostConfig']['Init'] is True
@requires_api_version('1.25')
def test_create_with_init_path(self):
ctnr = self.client.create_container(
BUSYBOX, 'true',
host_config=self.client.create_host_config(
init_path="/usr/libexec/docker-init"
)
)
self.tmp_containers.append(ctnr['Id'])
config = self.client.inspect_container(ctnr)
assert config['HostConfig']['InitPath'] == "/usr/libexec/docker-init"
class VolumeBindTest(BaseAPIIntegrationTest): class VolumeBindTest(BaseAPIIntegrationTest):
def setUp(self): def setUp(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment