diff --git a/src/Container/Container.php b/src/Container/Container.php index 0ea8ebf..aabe8c3 100644 --- a/src/Container/Container.php +++ b/src/Container/Container.php @@ -26,17 +26,19 @@ class Container private ?string $entryPoint = null; /** - * @var array - */ + * @var array + */ private array $env = []; private Process $process; private WaitInterface $wait; + private ?string $hostname = null; private bool $privileged = false; private ?string $network = null; private ?string $healthCheckCommand = null; private int $healthCheckIntervalInMS; + private array $cmd = []; /** * @var ContainerInspect @@ -68,6 +70,13 @@ public function getId(): string return $this->id; } + public function withHostname(string $hostname): self + { + $this->hostname = $hostname; + + return $this; + } + public function withEntryPoint(string $entryPoint): self { $this->entryPoint = $entryPoint; @@ -104,6 +113,13 @@ public function withHealthCheckCommand(string $command, int $healthCheckInterval return $this; } + public function withCmd(array $cmd): self + { + $this->cmd = $cmd; + + return $this; + } + public function withMount(string $localPath, string $containerPath): self { $this->mounts[] = '-v'; @@ -166,6 +182,11 @@ public function run(bool $wait = true): self $params[] = $this->network; } + if ($this->hostname !== null) { + $params[] = '--hostname'; + $params[] = $this->hostname; + } + if ($this->entryPoint !== null) { $params[] = '--entrypoint'; $params[] = $this->entryPoint; @@ -177,6 +198,10 @@ public function run(bool $wait = true): self $params[] = $this->image; + if (count($this->cmd) > 0) { + array_push($params, ...$this->cmd); + } + $this->process = new Process($params); $this->process->mustRun();