addOption("instance", "i", InputOption::VALUE_REQUIRED, "Specify the instance name", "default"); $this->addOption("portoffset", "p", InputOption::VALUE_REQUIRED, "Offset port numbers by value", 0); $this->addArgument("service", InputArgument::REQUIRED, "The service name"); } protected function execute(InputInterface $input, OutputInterface $output) { $serviceRegistry = $this->getServiceRegistry(); $containerManager = $this->getContainerManager(); $serviceName = $input->getArgument("service"); $serviceInfo = $serviceRegistry->findServiceByName($serviceName); if (!$serviceInfo) { $output->writeln("No such service in registry"); return self::FAILURE; } $instanceName = $input->getOption("instance"); $options = [ 'name' => $instanceName, 'portoffset' => $input->getOption("portoffset") ]; $output->write("Starting...\r"); $info = $containerManager->startService($serviceInfo, $options); $output->writeln("Started {$serviceName}[{$instanceName}]"); foreach ($info['ports'] as $info=>$port) { $output->writeln(" {$info}: {$port}"); } return self::SUCCESS; } }