Best Python code snippet using localstack_python
docker_cmd_client.py
Source:docker_cmd_client.py
...430 cmd += ["--user", user]431 if workdir:432 cmd += ["--workdir", workdir]433 if env_vars:434 env_flag, env_file = Util.create_env_vars_file_flag(env_vars)435 cmd += env_flag436 cmd.append(container_name_or_id)437 cmd += command if isinstance(command, List) else [command]438 LOG.debug("Execute in container cmd: %s", cmd)439 result = self._run_async_cmd(cmd, stdin, container_name_or_id)440 Util.rm_env_vars_file(env_file)441 return result442 def start_container(443 self,444 container_name_or_id: str,445 stdin=None,446 interactive: bool = False,447 attach: bool = False,448 flags: Optional[str] = None,449 ) -> Tuple[bytes, bytes]:450 cmd = self._docker_cmd() + ["start"]451 if flags:452 cmd.append(flags)453 if interactive:454 cmd.append("--interactive")455 if attach:456 cmd.append("--attach")457 cmd.append(container_name_or_id)458 LOG.debug("Start container with cmd: %s", cmd)459 return self._run_async_cmd(cmd, stdin, container_name_or_id)460 def _run_async_cmd(461 self, cmd: List[str], stdin: bytes, container_name: str, image_name=None462 ) -> Tuple[bytes, bytes]:463 kwargs = {464 "inherit_env": True,465 "asynchronous": True,466 "stderr": subprocess.PIPE,467 "outfile": self.default_run_outfile or subprocess.PIPE,468 }469 if stdin:470 kwargs["stdin"] = True471 try:472 process = run(cmd, **kwargs)473 stdout, stderr = process.communicate(input=stdin)474 if process.returncode != 0:475 raise subprocess.CalledProcessError(476 process.returncode,477 cmd,478 stdout,479 stderr,480 )481 else:482 return stdout, stderr483 except subprocess.CalledProcessError as e:484 stderr_str = to_str(e.stderr)485 if "Unable to find image" in stderr_str:486 raise NoSuchImage(image_name or "", stdout=e.stdout, stderr=e.stderr)487 if "No such container" in stderr_str:488 raise NoSuchContainer(container_name, stdout=e.stdout, stderr=e.stderr)489 raise ContainerException(490 "Docker process returned with errorcode %s" % e.returncode, e.stdout, e.stderr491 )492 def _build_run_create_cmd(493 self,494 action: str,495 image_name: str,496 *,497 name: Optional[str] = None,498 entrypoint: Optional[str] = None,499 remove: bool = False,500 interactive: bool = False,501 tty: bool = False,502 detach: bool = False,503 command: Optional[Union[List[str], str]] = None,504 mount_volumes: Optional[List[SimpleVolumeBind]] = None,505 ports: Optional[PortMappings] = None,506 env_vars: Optional[Dict[str, str]] = None,507 user: Optional[str] = None,508 cap_add: Optional[List[str]] = None,509 cap_drop: Optional[List[str]] = None,510 network: Optional[str] = None,511 dns: Optional[str] = None,512 additional_flags: Optional[str] = None,513 workdir: Optional[str] = None,514 ) -> Tuple[List[str], str]:515 env_file = None516 cmd = self._docker_cmd() + [action]517 if remove:518 cmd.append("--rm")519 if name:520 cmd += ["--name", name]521 if entrypoint is not None: # empty string entrypoint can be intentional522 cmd += ["--entrypoint", entrypoint]523 if mount_volumes:524 cmd += [525 volume526 for host_path, docker_path in dict(mount_volumes).items()527 for volume in ["-v", f"{host_path}:{docker_path}"]528 ]529 if interactive:530 cmd.append("--interactive")531 if tty:532 cmd.append("--tty")533 if detach:534 cmd.append("--detach")535 if ports:536 cmd += ports.to_list()537 if env_vars:538 env_flags, env_file = Util.create_env_vars_file_flag(env_vars)539 cmd += env_flags540 if user:541 cmd += ["--user", user]542 if cap_add:543 cmd += list(itertools.chain.from_iterable(["--cap-add", cap] for cap in cap_add))544 if cap_drop:545 cmd += list(itertools.chain.from_iterable(["--cap-drop", cap] for cap in cap_drop))546 if network:547 cmd += ["--network", network]548 if dns:549 cmd += ["--dns", dns]550 if workdir:551 cmd += ["--workdir", workdir]552 if additional_flags:...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!