6 Commits
0.0.3 ... 0.0.4

Author SHA1 Message Date
Travis Tomka
c2242c4b93 Update README with additional supported commands. 2017-03-30 20:04:44 -06:00
Travis Tomka
463daf3a2d Fix comment which was referencing the wrong command. 2017-03-30 20:02:01 -06:00
Travis Tomka
761f956826 Add docker-compose pause command. 2017-03-30 20:01:05 -06:00
Travis Tomka
01740ee9e4 Add docker-compose start command. 2017-03-30 20:00:26 -06:00
Travis Tomka
ce1360c733 Add docker-compose restart command. 2017-03-30 19:58:52 -06:00
Travis Tomka
4697d956fa Move docker services to a reusable trait. 2017-03-30 19:55:06 -06:00
7 changed files with 153 additions and 45 deletions

View File

@@ -34,6 +34,9 @@ The following commands have been implemented:
- docker-compose up
- docker-compose down
- docker-compose start
- docker-compose restart
- docker-compose pause
I'll be adding the rests of the docker-compose commands shortly. Or if you want
to create a PR with additional commands that would be much appreciated.

53
src/DockerServicesTrait.php Executable file
View File

@@ -0,0 +1,53 @@
<?php
namespace Droath\RoboDockerCompose;
/**
* Define docker services trait.
*/
trait DockerServicesTrait
{
/**
* Docker compose services.
*
* @var array
*/
protected $services = [];
/**
* Add docker composer service.
*
* @param string $service
* The docker services.
*/
public function setService($service)
{
$this->services[] = $service;
return $this;
}
/**
* Add docker composer services.
*
* @param array $services
* An array of services.
*/
public function setServices(array $services)
{
foreach ($services as $service) {
$this->setService($service);
}
return $this;
}
/**
* {@inheritdoc}
*/
protected function getCommand()
{
// Append the services to the end of the command.
return parent::getCommand() . ' ' . implode(' ', $this->services);
}
}

18
src/Task/Pause.php Executable file
View File

@@ -0,0 +1,18 @@
<?php
namespace Droath\RoboDockerCompose\Task;
use Droath\RoboDockerCompose\DockerServicesTrait;
/**
* Define docker compose pause command.
*/
class Pause extends Base
{
use DockerServicesTrait;
/**
* {@inheritdoc}
*/
protected $action = 'pause';
}

33
src/Task/Restart.php Executable file
View File

@@ -0,0 +1,33 @@
<?php
namespace Droath\RoboDockerCompose\Task;
use Droath\RoboDockerCompose\DockerServicesTrait;
/**
* Define docker compose restart command.
*/
class Restart extends Base
{
use DockerServicesTrait;
/**
* {@inheritdoc}
*/
protected $action = 'restart';
/**
* Specify a shutdown timeout in seconds.
*
* @param int $timeout
* The timeout in seconds.
*
* @return self
*/
public function timeout($timeout = 10)
{
$this->option('timeout', $timeout);
return $this;
}
}

18
src/Task/Start.php Executable file
View File

@@ -0,0 +1,18 @@
<?php
namespace Droath\RoboDockerCompose\Task;
use Droath\RoboDockerCompose\DockerServicesTrait;
/**
* Define docker compose start command.
*/
class Start extends Base
{
use DockerServicesTrait;
/**
* {@inheritdoc}
*/
protected $action = 'start';
}

47
src/Task/Up.php Normal file → Executable file
View File

@@ -2,6 +2,7 @@
namespace Droath\RoboDockerCompose\Task;
use Droath\RoboDockerCompose\DockerServicesTrait;
use Robo\Exception\TaskException;
/**
@@ -9,18 +10,13 @@ use Robo\Exception\TaskException;
*/
class Up extends Base
{
use DockerServicesTrait;
/**
* {@inheritdoc}
*/
protected $action = 'up';
/**
* Docker compose services.
*
* @var array
*/
protected $services = [];
/**
* Command detached mode.
*
@@ -28,34 +24,6 @@ class Up extends Base
*/
protected $detachedMode = false;
/**
* Add docker composer service.
*
* @param string $service
* The docker services.
*/
public function setService($service)
{
$this->services[] = $service;
return $this;
}
/**
* Add docker composer services.
*
* @param array $services
* An array of services.
*/
public function setServices(array $services)
{
foreach ($services as $service) {
$this->setService($service);
}
return $this;
}
/**
* Run containers in the background.
*/
@@ -147,15 +115,6 @@ class Up extends Base
return $this;
}
/**
* {@inheritdoc}
*/
protected function getCommand()
{
// Append the services to the end of the command.
return parent::getCommand() . ' ' . implode(' ', $this->services);
}
/**
* Set command detached mode.
*/

26
src/Task/loadTasks.php Normal file → Executable file
View File

@@ -16,10 +16,34 @@ trait loadTasks
}
/**
* Docker compose up task.
* Docker compose down task.
*/
protected function taskDockerComposeDown($pathToDockerCompose = null)
{
return $this->task(Down::class, $pathToDockerCompose);
}
/**
* Docker compose pause task.
*/
protected function taskDockerComposePause($pathToDockerCompose = null)
{
return $this->task(Pause::class, $pathToDockerCompose);
}
/**
* Docker compose start task.
*/
protected function taskDockerComposeStart($pathToDockerCompose = null)
{
return $this->task(Start::class, $pathToDockerCompose);
}
/**
* Docker compose restart task.
*/
protected function taskDockerComposeRestart($pathToDockerCompose = null)
{
return $this->task(Restart::class, $pathToDockerCompose);
}
}