taskDockerRun('test_env') * ->detached() * ->run(); * * $this->taskDockerExec($test) * ->interactive() * ->exec('./runtests') * ->run(); * * // alternatively use commands from other tasks * * $this->taskDockerExec($test) * ->interactive() * ->exec($this->taskCodecept()->suite('acceptance')) * ->run(); * ?> * ``` * */ class Exec extends Base { use CommandReceiver; /** * @var string */ protected $command = "docker exec"; /** * @var string */ protected $cid; /** * @var string */ protected $run = ''; /** * @param string|\Robo\Result $cidOrResult */ public function __construct($cidOrResult) { $this->cid = $cidOrResult instanceof Result ? $cidOrResult->getCid() : $cidOrResult; } /** * @return $this */ public function detached() { $this->option('-d'); return $this; } /** * {@inheritdoc)} */ public function interactive($interactive = true) { if ($interactive) { $this->option('-i'); } return parent::interactive($interactive); } /** * @param string|\Robo\Contract\CommandInterface $command * * @return $this */ public function exec($command) { $this->run = $this->receiveCommand($command); return $this; } /** * {@inheritdoc} */ public function getCommand() { return $this->command . ' ' . $this->arguments . ' ' . $this->cid.' '.$this->run; } }