|
|
@@ -496,7 +496,7 @@ class Service(object):
|
|
|
# TODO: Implement issue #652 here
|
|
|
return build_container_name(self.project, self.name, number, one_off)
|
|
|
|
|
|
- # TODO: this would benefit from github.com/docker/docker/pull/11943
|
|
|
+ # TODO: this would benefit from github.com/docker/docker/pull/14699
|
|
|
# to remove the need to inspect every container
|
|
|
def _next_container_number(self, one_off=False):
|
|
|
containers = filter(None, [
|
|
|
@@ -618,54 +618,34 @@ class Service(object):
|
|
|
|
|
|
def _get_container_host_config(self, override_options, one_off=False):
|
|
|
options = dict(self.options, **override_options)
|
|
|
- port_bindings = build_port_bindings(options.get('ports') or [])
|
|
|
|
|
|
- privileged = options.get('privileged', False)
|
|
|
- cap_add = options.get('cap_add', None)
|
|
|
- cap_drop = options.get('cap_drop', None)
|
|
|
log_config = LogConfig(
|
|
|
type=options.get('log_driver', ""),
|
|
|
config=options.get('log_opt', None)
|
|
|
)
|
|
|
- pid = options.get('pid', None)
|
|
|
- security_opt = options.get('security_opt', None)
|
|
|
-
|
|
|
- # TODO: these options are already normalized by config
|
|
|
- dns = options.get('dns', None)
|
|
|
- if isinstance(dns, six.string_types):
|
|
|
- dns = [dns]
|
|
|
-
|
|
|
- dns_search = options.get('dns_search', None)
|
|
|
- if isinstance(dns_search, six.string_types):
|
|
|
- dns_search = [dns_search]
|
|
|
-
|
|
|
- devices = options.get('devices', None)
|
|
|
- cgroup_parent = options.get('cgroup_parent', None)
|
|
|
- ulimits = build_ulimits(options.get('ulimits', None))
|
|
|
-
|
|
|
return self.client.create_host_config(
|
|
|
links=self._get_links(link_to_self=one_off),
|
|
|
- port_bindings=port_bindings,
|
|
|
+ port_bindings=build_port_bindings(options.get('ports') or []),
|
|
|
binds=options.get('binds'),
|
|
|
volumes_from=self._get_volumes_from(),
|
|
|
- privileged=privileged,
|
|
|
+ privileged=options.get('privileged', False),
|
|
|
network_mode=self.net.mode,
|
|
|
- devices=devices,
|
|
|
- dns=dns,
|
|
|
- dns_search=dns_search,
|
|
|
+ devices=options.get('devices'),
|
|
|
+ dns=options.get('dns'),
|
|
|
+ dns_search=options.get('dns_search'),
|
|
|
restart_policy=options.get('restart'),
|
|
|
- cap_add=cap_add,
|
|
|
- cap_drop=cap_drop,
|
|
|
+ cap_add=options.get('cap_add'),
|
|
|
+ cap_drop=options.get('cap_drop'),
|
|
|
mem_limit=options.get('mem_limit'),
|
|
|
memswap_limit=options.get('memswap_limit'),
|
|
|
- ulimits=ulimits,
|
|
|
+ ulimits=build_ulimits(options.get('ulimits')),
|
|
|
log_config=log_config,
|
|
|
extra_hosts=options.get('extra_hosts'),
|
|
|
read_only=options.get('read_only'),
|
|
|
- pid_mode=pid,
|
|
|
- security_opt=security_opt,
|
|
|
+ pid_mode=options.get('pid'),
|
|
|
+ security_opt=options.get('security_opt'),
|
|
|
ipc_mode=options.get('ipc'),
|
|
|
- cgroup_parent=cgroup_parent
|
|
|
+ cgroup_parent=options.get('cgroup_parent'),
|
|
|
)
|
|
|
|
|
|
def build(self, no_cache=False, pull=False, force_rm=False):
|