public function copyConfigs() { // Copy configs foreach ($this->configsToCopy() as $fileName) { $this->fs->copy($this->resourcesDir . '/conf/' . $fileName, $this->projectPath . '/docker/conf/' . $fileName); } // Change the default xdebug remote host on Mac, which uses a VM if (!Docker::native()) { $phpConfFile = $this->projectPath . '/docker/conf/php.ini'; $phpConf = file_get_contents($phpConfFile); $phpConf = str_replace('172.17.42.1', '192.168.99.1', $phpConf); file_put_contents($phpConfFile, $phpConf); } // Quick fix to make nginx PHP_IDE_CONFIG dynamic for now. $nginxConfFile = $this->projectPath . '/docker/conf/nginx.conf'; $nginxConf = file_get_contents($nginxConfFile); $nginxConf = str_replace('{{ platform }}', Platform::projectName() . '.' . Platform::projectTld(), $nginxConf); file_put_contents($nginxConfFile, $nginxConf); // stub in for Solr configs $finder = new Finder(); $finder->in($this->resourcesDir . '/conf/solr')->files()->depth('< 1')->name('*'); /** @var \SplFileInfo $file */ foreach ($finder as $file) { $this->fs->copy($file->getPathname(), $this->projectPath . '/docker/conf/solr/' . $file->getFilename()); } // copy ssl $this->fs->copy($this->resourcesDir . '/ssl/nginx.crt', $this->projectPath . '/docker/ssl/nginx.crt'); $this->fs->copy($this->resourcesDir . '/ssl/nginx.key', $this->projectPath . '/docker/ssl/nginx.key'); }
/** * Initiates basic variables. */ public function __construct() { $this->fs = new Filesystem(); $this->projectName = Platform::projectName(); $this->projectTld = Platform::projectTld(); $this->containerName = Compose::getContainerName(Platform::projectName(), 'mariadb'); }
/** * {@inheritdoc} * * @see PlatformCommand::getCurrentEnvironment() */ protected function execute(InputInterface $input, OutputInterface $output) { $url = 'http://' . Platform::projectName() . '.' . Platform::projectTld(); // See if the nginx-proxy is running. try { $process = Docker::inspect(['--format="{{ .State.Running }}"', 'nginx-proxy'], true); if (trim($process->getOutput()) != 'true') { $port = Docker::getContainerPort(Compose::getContainerName(Platform::projectName(), 'nginx'), 80); $url .= ':' . $port; } } catch (\Exception $e) { } $this->openUrl($url, $this->stdErr, $this->stdOut); }
/** * {@inheritdoc} * * @see PlatformCommand::getCurrentEnvironment() */ protected function execute(InputInterface $input, OutputInterface $output) { $processBuilder = ProcessBuilder::create(['drush', $input->getArgument('cmd'), '--root=' . Platform::webDir(), '--uri=' . Platform::projectName() . '.' . Platform::projectTld()]); passthru($processBuilder->getProcess()->getCommandLine()); }
/** * */ public function addWebserver() { $this->config['nginx'] = ['image' => 'nginx:1.9.0', 'volumes' => ['./docker/conf/nginx.conf:/etc/nginx/conf.d/default.conf', './:/var/platform', './docker/ssl/nginx.crt:/etc/nginx/ssl/nginx.crt', './docker/ssl/nginx.key:/etc/nginx/ssl/nginx.key'], 'ports' => ['80', '443'], 'links' => ['phpfpm'], 'environment' => ['VIRTUAL_HOST' => $this->name . '.' . Platform::projectTld(), 'PLATFORM_DOCKER' => $this->name]]; }