docker-compose.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. services:
  2. mysql:
  3. build:
  4. context: ./docker/mysql
  5. ports:
  6. - "3307:3306"
  7. volumes:
  8. - mysql_data:/var/lib/mysql
  9. - ./my.cnf:/etc/mysql/conf.d/custom_ai_app.cnf
  10. - ./init.sql:/docker-entrypoint-initdb.d/1-init.sql
  11. - ./init_zabbix_db.sh:/docker-entrypoint-initdb.d/2-init_zabbix.sh
  12. environment:
  13. - MYSQL_ROOT_PASSWORD=root_pass
  14. healthcheck:
  15. test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
  16. interval: 10s
  17. timeout: 5s
  18. retries: 5
  19. restart: always
  20. ollama:
  21. image: ollama/ollama:latest
  22. volumes:
  23. - ollama_data:/root/.ollama
  24. restart: always
  25. command: bash -c "ollama serve & sleep 5 && ollama pull llama3.2:1b && wait"
  26. app:
  27. build:
  28. context: .
  29. dockerfile: docker/app/Dockerfile
  30. ports:
  31. - "8502:8501"
  32. environment:
  33. - DB_HOST=mysql
  34. - DB_USER=db_reader
  35. - DB_PASS=${DB_READER_PASS}
  36. - APP_AUTH_USER=db_app_auth
  37. - APP_AUTH_PASS=${DB_APP_AUTH_PASS}
  38. - OLLAMA_HOST=http://ollama:11434
  39. depends_on:
  40. mysql:
  41. condition: service_healthy
  42. restart: always
  43. ingest:
  44. build:
  45. context: .
  46. dockerfile: docker/ingest/Dockerfile
  47. environment:
  48. - DB_HOST=mysql
  49. - DB_USER=db_loader
  50. - DB_PASS=${DB_LOADER_PASS}
  51. volumes:
  52. - ./:/app
  53. depends_on:
  54. mysql:
  55. condition: service_healthy
  56. profiles:
  57. - manual # Only runs when explicitly requested
  58. zabbix-server:
  59. image: zabbix/zabbix-server-mysql:ubuntu-7.0-latest
  60. environment:
  61. - DB_SERVER_HOST=mysql
  62. - MYSQL_USER=zabbix
  63. - MYSQL_PASSWORD=zabbix_pwd
  64. - ZBX_SNMPTRAPPER=1
  65. depends_on:
  66. mysql:
  67. condition: service_healthy
  68. restart: always
  69. zabbix-web:
  70. image: zabbix/zabbix-web-nginx-mysql:ubuntu-7.0-latest
  71. ports:
  72. - "8081:8080"
  73. - "8444:8443"
  74. environment:
  75. - DB_SERVER_HOST=mysql
  76. - MYSQL_USER=zabbix
  77. - MYSQL_PASSWORD=zabbix_pwd
  78. - ZBX_SERVER_HOST=zabbix-server
  79. - PHP_TZ=Europe/Paris
  80. depends_on:
  81. - zabbix-server
  82. restart: always
  83. zabbix-agent:
  84. image: zabbix/zabbix-agent:ubuntu-7.0-latest
  85. environment:
  86. - ZBX_HOSTNAME=Zabbix server
  87. - ZBX_SERVER_HOST=zabbix-server
  88. privileged: true
  89. pid: "host"
  90. volumes:
  91. - /var/run:/var/run
  92. depends_on:
  93. - zabbix-server
  94. restart: always
  95. nginx:
  96. image: nginx:latest
  97. ports:
  98. - "80:80"
  99. volumes:
  100. - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
  101. depends_on:
  102. - app
  103. restart: always
  104. volumes:
  105. mysql_data:
  106. ollama_data: