This commit is contained in:
Sergei Shitikov
2024-09-06 22:19:52 +02:00
parent abe8159bcb
commit f7e97d4932
2 changed files with 4 additions and 4 deletions
+2
View File
@@ -11,6 +11,7 @@ use Docker\API\Model\HostConfig;
use Docker\API\Model\Mount; use Docker\API\Model\Mount;
use Docker\API\Model\PortBinding; use Docker\API\Model\PortBinding;
use Docker\Docker; use Docker\Docker;
use Docker\Stream\CreateImageStream;
use InvalidArgumentException; use InvalidArgumentException;
use Testcontainers\ContainerClient\DockerContainerClient; use Testcontainers\ContainerClient\DockerContainerClient;
use Testcontainers\Utils\PortGenerator\RandomUniquePortGenerator; use Testcontainers\Utils\PortGenerator\RandomUniquePortGenerator;
@@ -230,6 +231,7 @@ class GenericContainer implements TestContainer
$containerCreateResponse = $this->dockerClient->containerCreate($containerCreatePostBody); $containerCreateResponse = $this->dockerClient->containerCreate($containerCreatePostBody);
$this->id = $containerCreateResponse?->getId() ?? ''; $this->id = $containerCreateResponse?->getId() ?? '';
} catch (ContainerCreateNotFoundException) { } catch (ContainerCreateNotFoundException) {
/** @var CreateImageStream $imageCreateResponse */
$this->dockerClient->imageCreate(null, [ $this->dockerClient->imageCreate(null, [
'fromImage' => explode(':', $this->image)[0], 'fromImage' => explode(':', $this->image)[0],
'tag' => explode(':', $this->image)[1] ?? 'latest', 'tag' => explode(':', $this->image)[1] ?? 'latest',
+2 -4
View File
@@ -6,6 +6,7 @@ namespace Testcontainers\Container;
use Docker\API\Client; use Docker\API\Client;
use Docker\API\Model\ContainersIdExecPostBody; use Docker\API\Model\ContainersIdExecPostBody;
use Docker\API\Model\ContainersIdJsonGetResponse200;
use Docker\API\Model\IdResponse; use Docker\API\Model\IdResponse;
use Docker\API\Runtime\Client\Client as DockerRuntimeClient; use Docker\API\Runtime\Client\Client as DockerRuntimeClient;
use Docker\Docker; use Docker\Docker;
@@ -110,16 +111,13 @@ class StartedGenericContainer implements StartedTestContainer
//TODO: not ready yet //TODO: not ready yet
public function getFirstMappedPort(): int public function getFirstMappedPort(): int
{ {
var_dump($this->dockerClient);die(123); /** @var ContainersIdJsonGetResponse200 | null $containerInspectResponse */
/** @var \Docker\API\Model\ContainersIdJsonGetResponse200 | null $containerInspectResponse */
$containerInspectResponse = $this->dockerClient->containerInspect($this->id); $containerInspectResponse = $this->dockerClient->containerInspect($this->id);
$settings = $containerInspectResponse->getNetworkSettings(); $settings = $containerInspectResponse->getNetworkSettings();
$ports = (array)$settings->getPorts(); $ports = (array)$settings->getPorts();
$port = array_key_first($ports); $port = array_key_first($ports);
var_dump($ports, $port, (int)$ports[$port][0]->getHostPort());
return (int) $ports[$port][0]->getHostPort(); return (int) $ports[$port][0]->getHostPort();
} }