chromabits / tutum-php
该包已被放弃,不再维护。未建议替代包。
用于 Tutum API 的 PHP 包装器
0.2.0
2015-02-21 23:48 UTC
Requires
- chromabits/nucleus: ~0.1
- guzzlehttp/guzzle: ~4.1
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~4.4
This package is not auto-updated.
Last update: 2024-01-20 12:26:48 UTC
README
Tutum API 的部分 PHP 包装器
关于
这是一个用于查询和发现容器链接以及管理 Tutum 服务的简单库。然而,它未来可以扩展成一个完整的客户端。
安装
将以下依赖项添加到您的 composer.json 中
{ "require": { "chromabits/tutum-php": "dev-master" }, "minimum-stability": "dev" }
在容器中使用
获取容器所有链接的示例
require_once(__DIR__ . '/vendor/autoload.php'); use \Chromabits\TutumClient\ClientFactory; use \Chromabits\TutumClient\Support\EnvUtils; $client = (new ClientFactory())->makeFromEnvironment(); $env = new EnvUtils(); $response = $client->container->show($env->getContainerUuid()); $container = $response->get(); var_dump($container->findLinks('some-other-service'));
部署服务
可以使用 PHP 编程方式在 Tutum 中部署服务
<?php require_once(__DIR__ . '/vendor/autoload.php'); use Chromabits\TutumClient\Client; use Chromabits\TutumClient\Requests\CreateServiceRequest; use Chromabits\TutumClient\Entities\ContainerPort; $client = new Client('someuser', 'vfjsblkdhbhkfhkajshkfj'); $nexusRequest = new CreateServiceRequest(); $nexusRequest->setName('nexus-staging'); $nexusRequest->setImage('eduard44/nexus:latest'); $nexusRequest->setTargetNumContainers(1); $nexusRequest->addTag('staging'); $nexusRequest->addPort(new ContainerPort(80, ContainerPort::PROTO_TCP, 80, true)); $nexusRequest->setEnvironment('DB_DIALECT', 'mysql'); $nexusRequest->setEnvironment('DB_NAME', 'nexus'); $nexusRequest->setEnvironment('DB_USERNAME', 'nexus'); $nexusRequest->setEnvironment('DB_PASSWORD', 'suchSecretVarySafe'); $nexusRequest->setEnvironment('DB_HOST', 'some.host.hack'); $nexus = $client->service->create($nexusRequest)->get(); $client->service->start($nexus);
也支持其他服务操作
$client->service->stop($nexus); $client->service->redeploy($nexus); $client->service->terminate($nexus);
获取所有服务
service->index()
调用允许您查询您 Tutum 账户上的当前服务
<?php require_once(__DIR__ . '/vendor/autoload.php'); use Chromabits\TutumClient\Client; use Chromabits\TutumClient\Entities\Service; $client = new Client('someuser', 'vfjsblkdhbhkfhkajshkfj'); // Get all services $response = $client->service->index(); // Get only services which have the state "Init" $response = $client->service->index(Service::STATE_INIT); // Get services by name $response = $client->service->index(null, 'wordpress');