1 | <?php |
||
10 | class DnsDock extends InstallerTask implements DependentChainProcessInterface |
||
11 | { |
||
12 | const IP = '172.17.42.1'; |
||
13 | |||
14 | /** |
||
15 | * @var ProcessRunner |
||
16 | */ |
||
17 | private $processRunner; |
||
18 | /** |
||
19 | * @var UserInteraction |
||
20 | */ |
||
21 | private $userInteraction; |
||
22 | |||
23 | /** |
||
24 | * @param UserInteraction $userInteraction |
||
25 | * @param ProcessRunner $processRunner |
||
26 | */ |
||
27 | public function __construct(UserInteraction $userInteraction, ProcessRunner $processRunner) |
||
28 | { |
||
29 | $this->userInteraction = $userInteraction; |
||
30 | $this->processRunner = $processRunner; |
||
31 | } |
||
32 | |||
33 | /** |
||
34 | * {@inheritdoc} |
||
35 | */ |
||
36 | public function dependsOn() |
||
40 | |||
41 | /** |
||
42 | * {@inheritdoc} |
||
43 | */ |
||
44 | public function getName() |
||
48 | |||
49 | public function run() |
||
50 | { |
||
51 | if (!$this->hasDockerOptions()) { |
||
52 | $this->userInteraction->writeTitle('Configuring DNS resolution for Docker containers'); |
||
53 | |||
54 | $this->processRunner->run('echo \'DOCKER_OPTS="--bip='.self::IP.'/24 --dns '.self::IP.'"\' | sudo tee -a /etc/default/docker'); |
||
55 | $this->processRunner->run('sudo service docker restart'); |
||
56 | } |
||
57 | |||
58 | $this->processRunner->run('sudo docker start dnsdock || sudo docker run -d -v /var/run/docker.sock:/var/run/docker.sock --name dnsdock -p 172.17.42.1:53:53/udp tonistiigi/dnsdock'); |
||
59 | } |
||
60 | |||
61 | private function hasDockerOptions() |
||
65 | } |
||
66 |