Quellcode durchsuchen

FD3-400 Config geoserver docker

Guillermo Espinoza vor 7 Jahren
Ursprung
Commit
3329fac223
1 geänderte Dateien mit 45 neuen und 3 gelöschten Zeilen
  1. 45 3
      tools/src/Release.php

+ 45 - 3
tools/src/Release.php

@@ -184,7 +184,16 @@ class Release extends Command
                 'HOST_ENV' => false,
                 'OAUTH' => false,
                 'MODULE_INSTALL' => true
-            )
+            ),
+            "geoserver" => array(
+                'HOST_ENV' => true,
+                "VAR_ENV" => array(
+                    'VIRTUAL_HOST' => '',
+                    'HTTPS_METHOD' => 'nohttps',
+                ),
+                'OAUTH' => false,
+                'MODULE_INSTALL' => true
+            ),
         );
     }
 
@@ -262,7 +271,7 @@ class Release extends Command
 
                 $docker_tag = $input->getOption("docker-tag");
 
-	        $this->internal_user_id = 2;	    
+	        $this->internal_user_id = 2;
 
                 $this->_ansible_vars["DOMAIN"] = $this->_domain;
                 $this->_ansible_vars["CLIENT"] = $this->_client;
@@ -581,6 +590,8 @@ class Release extends Command
             ->image($registry . "fd3/supervisord:$version")
             ->privileged(true)
             ->restart($this->_docker_restart_default)
+            ->addLinks("geoserver")
+            ->addLinks("nginx", $this->getDomain("geoserver"))
             ->addVolumes("./extra/supervisord/", "/etc/supervisord/")
             ->addVolumes("./extra/supervisord/var/", "/var/log/supervisor/")
             ->addVolumes("./extra/supervisord/sshd_config", "/etc/ssh/sshd_config")
@@ -817,10 +828,38 @@ class Release extends Command
         ->addLinks("base")
         ->addLinks("amqp")
         ->addLinks("nginx", $this->getDomain("base"))
+        ->addLinks("geoserver")
+        ->addLinks("nginx", $this->getDomain("geoserver"))
         ->addEnv_file("running.env")
         ->addEnv_file("hosts.env")
         ->addEnviroment("AMQP_KEY", "stats")
-        ->addVolumes("./stats/", "/opt/stats");
+        ->addVolumes("./stats/", "/opt/stats")
+        ->addVolumes("./geoserver/geoserver-shapes", "/var/www/shapes")
+        ;
+    }
+
+    /**
+    * @param FileFormat2 $composer
+    * @param array $config
+    */
+    public function addGeoserver(FileFormat2 $composer, $config = array())
+    {
+        $version = "latest";
+        $registry = "";
+        extract($config);
+
+        $composer
+        ->addService("geoserver")
+        ->image($registry . "fd3/geoserver:" . $version)
+        ->build("./extra/geoserver/")
+        ->restart($this->_docker_restart_default)
+        ->addLinks("nginx", $this->getDomain("geoserver"))
+        ->addEnv_file("running.env")
+        ->addEnv_file("hosts.env")
+        ->addVolumes("./extra/geoserver/geoserver-data/styles", "/opt/geoserver/data_dir/styles")
+        ->addVolumes("./geoserver/geoserver-shapes", "/var/www/shapes")
+        ->addPorts(8081, 8080)
+        ;
     }
 
 
@@ -863,6 +902,9 @@ class Release extends Command
         $this->addSupervisord($composer, $base_vars);
         $this->addCommandWorkers($composer, $base_vars);
 
+        // Geoserver
+        $this->addGeoserver($composer, $base_vars);
+
         $this->_dObj->file("docker-compose.yml")->content($composer->render());
 
         // escribo un archivo inventory.ini por defecto para no tener que lanzar los docker