setEnv() public method

public setEnv ( string[] | null $env = null ) : self
$env string[] | null
return self
Beispiel #1
0
 /**
  * Start services for a Job
  *
  * @param Job $build
  */
 public function start(Job $build)
 {
     foreach ($build->getServices() as $service) {
         try {
             $this->docker->getImageManager()->find(sprintf('%s:%s', $service->getRepository(), $service->getTag()));
         } catch (ClientErrorException $e) {
             if ($e->getResponse()->getStatusCode() == 404) {
                 $buildStream = $this->docker->getImageManager()->create(null, ['fromImage' => sprintf('%s:%s', $service->getRepository(), $service->getTag())], ImageManager::FETCH_STREAM);
                 $buildStream->onFrame($this->logger->getBuildCallback());
                 $buildStream->wait();
             } else {
                 throw $e;
             }
         }
         $serviceConfig = $service->getConfig();
         $containerConfig = new ContainerConfig();
         $containerConfig->setImage(sprintf('%s:%s', $service->getRepository(), $service->getTag()));
         $containerConfig->setLabels(['com.jolici.container=true']);
         if (isset($serviceConfig['Env'])) {
             $containerConfig->setEnv($serviceConfig['Env']);
         }
         $containerCreateResult = $this->docker->getContainerManager()->create($containerConfig);
         $this->docker->getContainerManager()->start($containerCreateResult->getId());
         $service->setContainer($containerCreateResult->getId());
     }
 }