Dhcp_task.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace FD3\Services;
  3. use Docker\Composer\FileFormat;
  4. use FD3\Release;
  5. class Dhcp_task extends InitialService
  6. {
  7. /**
  8. * @var int ip server
  9. */
  10. protected $ip_server = 17;
  11. /**
  12. * Dhcp_tasklogger_worker constructor.
  13. */
  14. public function __construct()
  15. {
  16. $this
  17. ->setHelp("Modulo de logs de tareas del dhcp")
  18. ->setHostEnv(false)
  19. ->setVarEnv([])
  20. ->setOauth(false)
  21. ->setRequired(false)
  22. ->setDepends(['dhcp']);
  23. }
  24. /**
  25. * Add config
  26. * @throws \Docker\Composer\ServiceNotFoundException
  27. */
  28. public function add()
  29. {
  30. $module = $this->getModuleName();
  31. $initial = $this->getInitialName();
  32. $version = "latest";
  33. $registry = "";
  34. extract($this->getConfigVar());
  35. if ($this->getRelease()->needInstallModule($module)) {
  36. $this->getComposer()->addService($module)
  37. ->image($registry . "fd3/$initial:" . $version);
  38. if ($this->getProduction() === false) {
  39. $this->getComposer()->service($module)
  40. ->build("./$initial/")
  41. ->addVolumes("./$initial/", "/opt/$initial/");
  42. }
  43. $this->getComposer()->service($module)
  44. ->hostname($module)
  45. ->command("bin/console rabbitmq:consumer flowdat_tasklogger")
  46. ->restart($this->getRelease()->_docker_restart_task)
  47. ->addEnv_file($this->getRelease()->_running_env)
  48. ->addEnv_file($this->getRelease()->_host_env)
  49. ->addEnv_file("$initial." . $this->getRelease()->_host_env)
  50. ->addEnviroment("AMQP_KEY", "$initial")
  51. ->addVolumes("/etc/localtime:/etc/localtime:ro")
  52. ->addVolumes("./hosts:/etc/hosts")
  53. ->network($this->getRelease()->_network_name)->ipv4_address($this->generateIP());
  54. if ($this->getRelease()->isModuleAvailable(new Kea())) {
  55. $this->getComposer()->service($module)
  56. ->addVolumes(Dhcp::DHCP_KEA_VOLUMEN, "/opt/dhcp/web/kea")
  57. ->addVolumes("./kea/1.4.0/kea-ik/conf/kea-dhcp4.conf", "/opt/dhcp/web/kea/kea-dhcp4.conf");
  58. }
  59. $this->addLink(new Mysql(), $module)
  60. ->addLink(new Base(), $module)
  61. ->addLinkNginx(new Base(), $module)
  62. ->addLinkNginx(new Cablemodem(), $module);
  63. }
  64. }
  65. }