| 262 | |
| 263 | |
| 264 | class HostConfig(dict): |
| 265 | def __init__(self, version, binds=None, port_bindings=None, |
| 266 | lxc_conf=None, publish_all_ports=False, links=None, |
| 267 | privileged=False, dns=None, dns_search=None, |
| 268 | volumes_from=None, network_mode=None, restart_policy=None, |
| 269 | cap_add=None, cap_drop=None, devices=None, extra_hosts=None, |
| 270 | read_only=None, pid_mode=None, ipc_mode=None, |
| 271 | security_opt=None, ulimits=None, log_config=None, |
| 272 | mem_limit=None, memswap_limit=None, mem_reservation=None, |
| 273 | kernel_memory=None, mem_swappiness=None, cgroup_parent=None, |
| 274 | group_add=None, cpu_quota=None, cpu_period=None, |
| 275 | blkio_weight=None, blkio_weight_device=None, |
| 276 | device_read_bps=None, device_write_bps=None, |
| 277 | device_read_iops=None, device_write_iops=None, |
| 278 | oom_kill_disable=False, shm_size=None, sysctls=None, |
| 279 | tmpfs=None, oom_score_adj=None, dns_opt=None, cpu_shares=None, |
| 280 | cpuset_cpus=None, userns_mode=None, uts_mode=None, |
| 281 | pids_limit=None, isolation=None, auto_remove=False, |
| 282 | storage_opt=None, init=None, init_path=None, |
| 283 | volume_driver=None, cpu_count=None, cpu_percent=None, |
| 284 | nano_cpus=None, cpuset_mems=None, runtime=None, mounts=None, |
| 285 | cpu_rt_period=None, cpu_rt_runtime=None, |
| 286 | device_cgroup_rules=None, device_requests=None, |
| 287 | cgroupns=None): |
| 288 | |
| 289 | if mem_limit is not None: |
| 290 | self['Memory'] = parse_bytes(mem_limit) |
| 291 | |
| 292 | if memswap_limit is not None: |
| 293 | self['MemorySwap'] = parse_bytes(memswap_limit) |
| 294 | |
| 295 | if mem_reservation: |
| 296 | self['MemoryReservation'] = parse_bytes(mem_reservation) |
| 297 | |
| 298 | if kernel_memory: |
| 299 | self['KernelMemory'] = parse_bytes(kernel_memory) |
| 300 | |
| 301 | if mem_swappiness is not None: |
| 302 | if not isinstance(mem_swappiness, int): |
| 303 | raise host_config_type_error( |
| 304 | 'mem_swappiness', mem_swappiness, 'int' |
| 305 | ) |
| 306 | |
| 307 | self['MemorySwappiness'] = mem_swappiness |
| 308 | |
| 309 | if shm_size is not None: |
| 310 | if isinstance(shm_size, str): |
| 311 | shm_size = parse_bytes(shm_size) |
| 312 | |
| 313 | self['ShmSize'] = shm_size |
| 314 | |
| 315 | if pid_mode: |
| 316 | if version_lt(version, '1.24') and pid_mode != 'host': |
| 317 | raise host_config_value_error('pid_mode', pid_mode) |
| 318 | self['PidMode'] = pid_mode |
| 319 | |
| 320 | if ipc_mode: |
| 321 | self['IpcMode'] = ipc_mode |
no outgoing calls