From da2babf6f5ca13d915d47d36b75f7adb24537179 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Mon, 12 Jun 2017 16:28:20 +0200 Subject: [PATCH] #2 Move Traefik tasks out into its own library --- composer.json | 1 + src/Handler.php | 44 +++----------------------------------------- 2 files changed, 4 insertions(+), 41 deletions(-) diff --git a/composer.json b/composer.json index 80b92c3..f294872 100644 --- a/composer.json +++ b/composer.json @@ -26,6 +26,7 @@ "require": { "php": ">=5.4.5", "composer-plugin-api": "^1.0.0", + "lakedrops/docker-traefik": "^0.1.1", "twig/twig": "^1.23.1" }, "autoload": { diff --git a/src/Handler.php b/src/Handler.php index deb50db..f0e71cf 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -11,6 +11,7 @@ use Composer\Package\PackageInterface; use Composer\Composer; use Composer\IO\IOInterface; use Composer\Script\Event as ScriptEvent; +use LakeDrops\DockerTraefik\Traefik; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Yaml\Yaml; @@ -154,47 +155,8 @@ class Handler { // We're ignoring this for now } - // Update host wider traefik container - $traefikPath = $_SERVER['HOME'] . '/.traefik'; - $traefikFile = $traefikPath . '/docker-compose.yml'; - if ($fs->exists($traefikFile)) { - $traefik = Yaml::parse(file_get_contents($traefikFile)); - } - else { - $fs->mkdir($traefikPath); - $traefik = [ - 'version' => '2', - 'services' => [ - 'traefik' => [ - 'image' => 'traefik', - 'restart' => 'unless-stopped', - 'command' => '-c /dev/null --web --docker --logLevel=DEBUG', - 'networks' => [], - 'ports' => [ - '8000:80', - '8080:8080', - ], - 'volumes' => [ - '/var/run/docker.sock:/var/run/docker.sock', - ], - ], - ], - 'networks' => [], - ]; - } - if (!in_array($options['projectname'], $traefik['services']['traefik']['networks'])) { - $traefik['services']['traefik']['networks'][] = $options['projectname']; - $traefik['networks'][$options['projectname']] = [ - 'external' => [ - 'name' => $options['projectname'] . '_default', - ], - ]; - file_put_contents($traefikFile, Yaml::dump($traefik, 9, 2)); - exec('docker network create ' . $options['projectname'] . '_default'); - exec('docker-compose -f ' . $traefikFile . ' --project-name traefik stop'); - exec('docker-compose -f ' . $traefikFile . ' --project-name traefik up -d'); - } - + $traefik = new Traefik($options['projectname']); + $traefik->update(); } protected function getFiles($projectRoot, $webRoot, $settingsPath) { -- GitLab