5 Commits
0.0.4 ... 0.0.5

Author SHA1 Message Date
Travis Tomka
0bd195e5a9 Merge branch 'master' of github.com:droath/robo-docker-compose 2018-02-25 18:11:30 -07:00
Travis Tomka
0d799fca6c Add docker-compose exec command. 2018-02-25 18:10:48 -07:00
Travis Tomka
a5c405ec02 Merge pull request #2 from raphaelstolt/improvement-installation-documentation
Improvement installation documentation
2017-10-05 08:59:18 -06:00
Raphael Stolt
c3cc0c2e1f Let Composer figure out the latest version. 2017-10-05 02:52:35 +02:00
Raphael Stolt
65893fc1a9 Emphasise it's dev dependency character. 2017-10-05 02:51:54 +02:00
5 changed files with 168 additions and 4 deletions

View File

@@ -7,7 +7,7 @@ Run docker compose commands from the Robo task runner.
First, you'll need to download the robo docker compose library using composer: First, you'll need to download the robo docker compose library using composer:
```bash ```bash
composer require droath/robo-docker-compose:~0.0.1 composer require --dev droath/robo-docker-compose
``` ```
### Example ### Example
@@ -33,6 +33,7 @@ composer require droath/robo-docker-compose:~0.0.1
The following commands have been implemented: The following commands have been implemented:
- docker-compose up - docker-compose up
- docker-compose exec
- docker-compose down - docker-compose down
- docker-compose start - docker-compose start
- docker-compose restart - docker-compose restart

View File

@@ -45,7 +45,7 @@ trait DockerServicesTrait
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function getCommand() public function getCommand()
{ {
// Append the services to the end of the command. // Append the services to the end of the command.
return parent::getCommand() . ' ' . implode(' ', $this->services); return parent::getCommand() . ' ' . implode(' ', $this->services);

View File

@@ -4,13 +4,14 @@ namespace Droath\RoboDockerCompose\Task;
use Droath\RoboDockerCompose\ExecutableArguments; use Droath\RoboDockerCompose\ExecutableArguments;
use Robo\Common\ExecOneCommand; use Robo\Common\ExecOneCommand;
use Robo\Contract\CommandInterface;
use Robo\Exception\TaskException; use Robo\Exception\TaskException;
use Robo\Task\BaseTask; use Robo\Task\BaseTask;
/** /**
* Docker compose base class. * Docker compose base class.
*/ */
abstract class Base extends BaseTask abstract class Base extends BaseTask implements CommandInterface
{ {
use ExecOneCommand; use ExecOneCommand;
use ExecutableArguments; use ExecutableArguments;
@@ -128,7 +129,7 @@ abstract class Base extends BaseTask
* *
* @return string * @return string
*/ */
protected function getCommand() public function getCommand()
{ {
return "{$this->executable} {$this->executableArgs} {$this->action} {$this->arguments}"; return "{$this->executable} {$this->executableArgs} {$this->action} {$this->arguments}";
} }

153
src/Task/Execute.php Normal file
View File

@@ -0,0 +1,153 @@
<?php
namespace Droath\RoboDockerCompose\Task;
use Robo\Contract\CommandInterface;
/**
* Docker compose execute command.
*/
class Execute extends Base
{
/**
* Execute command.
*
* @var string
*/
protected $command;
/**
* Execute container.
*
* @var string.
*/
protected $container;
/**
* {@inheritdoc}
*/
protected $action = 'exec';
/**
* Set docker container.
*
* @param $container
* The container name.
* @return $this
*/
public function setContainer($container)
{
$this->container = $container;
return $this;
}
/**
* Set execute command.
*
* @param string|CommandInterface $command
* The command to execute.
*
* @return $this
*/
public function exec($command)
{
if ($command instanceof CommandInterface) {
$command = $command->getCommand();
}
$this->command = $command;
return $this;
}
/**
* Run command in the background.
*
* @return $this
*/
public function detachedMode()
{
$this->arg('-d');
return $this;
}
/**
* Give extended privileges to the process.
*
* @return $this
*/
public function privileged()
{
$this->option('privileged');
return $this;
}
/**
* Run the command as this user.
*
* @param $user
* The user on which to run the command under.
*
* @return $this
*/
public function user($user)
{
$this->option('user', $user);
return $this;
}
/**
* Disable pseudo-tty allocation.
*
* @return $this
*/
public function disablePseudoTty()
{
$this->arg('-T');
return $this;
}
/**
* Index of the container.
*
* @param $index
* The container index.
*
* @return $this
*/
public function index($index)
{
$this->option('index', $index);
return $this;
}
/**
* Set environment variables
*
* @param $key
* The environment key.
* @param $value
* The environment value.
*
* @return $this
*/
public function envVariable($key, $value)
{
$this->option('env', "{$key}={$value}");
return $this;
}
/**
* {@inheritdoc}
*/
public function getCommand()
{
return parent::getCommand() . "{$this->container} {$this->command}";
}
}

View File

@@ -46,4 +46,13 @@ trait loadTasks
{ {
return $this->task(Restart::class, $pathToDockerCompose); return $this->task(Restart::class, $pathToDockerCompose);
} }
/**
* Docker compose execute task.
*/
protected function taskDockerComposeExecute($pathToDockerCompose = null)
{
return $this->task(Execute::class, $pathToDockerCompose);
}
} }