定制 te4g/docker-client 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

te4g/docker-client

最新稳定版本:v1.51.2

Composer 安装命令:

composer require te4g/docker-client

包简介

A PHP client to interact with Docker API

README 文档

README

How to use

composer require te4g/docker-client
<?php

require __DIR__ . '/vendor/autoload.php';

use Te4g\DockerClient\DockerClient;

$client = DockerClient::create();

var_dump($client->containerList());

How to build

  1. Download the docker API definition from https://docs.docker.com/engine/api/latest/, save it as open-api.yaml
  2. Follow the instructions about how to use Jane to generate the PHP classes from the API definition: https://jane.readthedocs.io/en/latest/ a. Install the dependencies
    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. Create the Jane configuration file .jane-openapi
    <?php
    
    return [
        'openapi-file' => __DIR__ . '/open-api.yaml',
        'namespace' => 'Vendor\Library\Generated',
        'directory' => __DIR__ . '/generated',
    ];
    c. Generate the PHP classes
    php vendor/bin/jane-openapi generate
  3. Update the composer.json file to include the generated classes
    {
      "autoload": {
        "psr-4": {
          "Vendor\\Library\\Generated\\": "generated/"
        }
      }
    }
  4. Run composer dump-autoload to update the autoloader
  5. Try if it works by creating a new PHP file and adding the following code
    <?php
    
    require __DIR__ . '/vendor/autoload.php';
    
    use Symfony\Component\HttpClient\Psr18Client;
    
    $httpClient = (new Psr18Client())->withOptions([
    'base_uri' => 'http://localhost',
    'bindto' => '/var/run/docker.sock'
    ]);
    
    $dockerClient = Vendor\Library\Generated\Client::create(httpClient: $httpClient);
    
    $containers = $dockerClient->containerList();
    
    foreach ($containers as $container) {
    echo $container->getId() . "\n";
    }

统计信息

  • 总下载量: 34
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-12-04