Code reuse on inspecting a docker container

This commit is contained in:
Nikola Petkanski
2024-07-16 03:34:42 +03:00
parent de59891641
commit ed18c0b8f8
2 changed files with 17 additions and 12 deletions
+1 -7
View File
@@ -167,13 +167,7 @@ class Container
$this->process = new Process($params);
$this->process->mustRun();
$inspect = new Process(['docker', 'inspect', $this->id]);
$inspect->mustRun();
/** @var ContainerInspectSingleNetwork|ContainerInspectMultipleNetworks $inspectedData */
$inspectedData = json_decode($inspect->getOutput(), true, 512, JSON_THROW_ON_ERROR);
$this->inspectedData = $inspectedData;
$this->inspectedData = $this->getContainerInspect($this->id);
Registry::add($this);
+16 -5
View File
@@ -24,11 +24,7 @@ trait DockerContainerAwareTrait
protected function getContainerAddress(string $containerId, ?string $networkName = null, ?array $inspectedData = null): string
{
if (! is_array($inspectedData)) {
$process = new Process(['docker', 'inspect', $containerId]);
$process->mustRun();
/** @var ContainerInspect $inspectedData */
$inspectedData = json_decode($process->getOutput(), true, 512, JSON_THROW_ON_ERROR);
$inspectedData = $this->getContainerInspect($containerId);
}
if (is_string($networkName)) {
@@ -47,4 +43,19 @@ trait DockerContainerAwareTrait
throw new UnexpectedValueException('Unable to find container IP address');
}
/**
* @param string $containerId
* @return ContainerInspect
*
* @throws JsonException
*/
protected function getContainerInspect(string $containerId): array
{
$process = new Process(['docker', 'inspect', $containerId]);
$process->mustRun();
/** @var ContainerInspect */
return json_decode($process->getOutput(), true, 512, JSON_THROW_ON_ERROR);
}
}