te4g / docker-client
一个用于与Docker API交互的PHP客户端
v1.43.1
2023-12-04 17:47 UTC
Requires
- jane-php/open-api-runtime: ^7.5
- nyholm/psr7: ^1.8
- symfony/http-client: ^6.4|^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.40
README
如何使用
composer require te4g/php-docker-client
<?php require __DIR__ . '/vendor/autoload.php'; use Te4g\DockerClient\DockerClient; $client = DockerClient::create(); var_dump($client->containerList());
如何构建
- 从 https://docs.dockerd.com.cn/engine/api/latest/ 下载docker API定义,保存为
open-api.yaml - 按照以下步骤使用Jane从API定义生成PHP类: https://jane.readthedocs.io/en/latest/ a. 安装依赖项
composer require jane-php/open-api-runtime composer require symfony/http-client composer require --dev jane-php/open-api-2 composer require --dev friendsofphp/php-cs-fixer
b. 创建Jane配置文件.jane-openapi<?php return [ 'openapi-file' => __DIR__ . '/open-api.yaml', 'namespace' => 'Vendor\Library\Generated', 'directory' => __DIR__ . '/generated', ];
c. 生成PHP类php vendor/bin/jane-openapi generate
- 更新
composer.json文件以包含生成的类{ "autoload": { "psr-4": { "Vendor\\Library\\Generated\\": "generated/" } } } - 运行
composer dump-autoload更新自动加载器 - 通过创建一个新的PHP文件并添加以下代码来测试是否成功
<?php require __DIR__ . '/vendor/autoload.php'; use Symfony\Component\HttpClient\Psr18Client; $httpClient = (new Psr18Client())->withOptions([ 'base_uri' => 'https://', 'bindto' => '/var/run/docker.sock' ]); $dockerClient = Vendor\Library\Generated\Client::create(httpClient: $httpClient); $containers = $dockerClient->containerList(); foreach ($containers as $container) { echo $container->getId() . "\n"; }