Geoserver.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace FD3\Services;
  3. use Docker\Composer\FileFormat2;
  4. use FD3\Release;
  5. class Geoserver extends InitialService
  6. {
  7. /**
  8. * Geoserver constructor.
  9. */
  10. public function __construct()
  11. {
  12. $this
  13. ->setHelp("Modulo de geoserver")
  14. ->setHostEnv(true)
  15. ->setVarEnv([
  16. 'VIRTUAL_HOST' => '',
  17. 'HTTPS_METHOD' => 'nohttps'
  18. ])
  19. ->setOauth(false)
  20. ->setRequired(false)
  21. ->setDepends([]);
  22. }
  23. /**
  24. * @param Release $release
  25. * @param FileFormat2 $composer
  26. * @param array $config
  27. */
  28. public function add(Release $release, FileFormat2 $composer, $config = array())
  29. {
  30. $module = $this->getModuleName();
  31. $version = "latest";
  32. $registry = "";
  33. extract($config);
  34. if ($release->needInstallModule($module)) {
  35. $composer
  36. ->addService($module)
  37. ->image($registry . "fd3/$module:" . $version)
  38. ->build("./extra/geoserver/")
  39. ->restart($release->_docker_restart_default)
  40. ->addLinks((new Nginx())->getModuleName(), $release->getDomain($module))
  41. ->addEnv_file($release->_running_env)
  42. ->addEnv_file($release->_host_env)
  43. ->addVolumes("./extra/geoserver/geoserver-data/styles", "/opt/geoserver/data_dir/styles")
  44. ->addVolumes("./geoserver/geoserver-shapes", "/var/www/shapes")
  45. ->addPorts(8081, 8080)
  46. ->mem_limit('500m');
  47. }
  48. }
  49. }