1
0

docker-compose.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. environment:
  12. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  13. healthcheck:
  14. test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
  15. interval: 10s
  16. timeout: 5s
  17. retries: 20
  18. restart: always
  19. ingest:
  20. build:
  21. context: .
  22. dockerfile: docker/ingest/Dockerfile
  23. environment:
  24. - DB_HOST=mysql
  25. - DB_USER=food_loader
  26. - DB_PASS=${DB_LOADER_PASS}
  27. volumes:
  28. - ./:/app
  29. profiles:
  30. - manual
  31. ollama:
  32. image: ollama/ollama:latest
  33. volumes:
  34. - ollama_data:/root/.ollama
  35. restart: always
  36. searxng:
  37. image: searxng/searxng:latest
  38. ports:
  39. - "8080:8080"
  40. volumes:
  41. - ./searxng:/etc/searxng
  42. environment:
  43. - SEARXNG_BASE_URL=http://localhost:8080/
  44. restart: always
  45. app:
  46. build:
  47. context: .
  48. dockerfile: docker/app/Dockerfile
  49. ports:
  50. - "8502:8501"
  51. environment:
  52. - DB_HOST=mysql
  53. - DB_USER=food_reader
  54. - DB_PASS=${DB_READER_PASS}
  55. - APP_AUTH_USER=food_app_auth
  56. - APP_AUTH_PASS=${DB_APP_AUTH_PASS}
  57. - OLLAMA_HOST=http://ollama:11434
  58. - SEARXNG_HOST=http://searxng:8080
  59. restart: always
  60. nginx:
  61. image: nginx:latest
  62. ports:
  63. - "80:80"
  64. volumes:
  65. - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
  66. restart: always
  67. zabbix-server:
  68. image: zabbix/zabbix-server-mysql:ubuntu-7.0-latest
  69. environment:
  70. - DB_SERVER_HOST=mysql
  71. - MYSQL_USER=zabbix
  72. - MYSQL_PASSWORD=${MYSQL_ZABBIX_PASSWORD}
  73. - ZBX_SNMPTRAPPER=1
  74. restart: always
  75. ports:
  76. - "10051:10051"
  77. zabbix-web:
  78. image: zabbix/zabbix-web-nginx-mysql:ubuntu-7.0-latest
  79. ports:
  80. - "8081:8080"
  81. - "8444:8443"
  82. environment:
  83. - DB_SERVER_HOST=mysql
  84. - MYSQL_USER=zabbix
  85. - MYSQL_PASSWORD=${MYSQL_ZABBIX_PASSWORD}
  86. - ZBX_SERVER_HOST=zabbix-server
  87. - PHP_TZ=Europe/Paris
  88. restart: always
  89. zabbix-agent:
  90. image: zabbix/zabbix-agent:ubuntu-7.0-latest
  91. environment:
  92. - ZBX_HOSTNAME=DistributedNode
  93. - ZBX_SERVER_HOST=zabbix-server
  94. privileged: true
  95. pid: "host"
  96. volumes:
  97. - /var/run:/var/run
  98. restart: always
  99. airflow-webserver:
  100. image: apache/airflow:2.8.1
  101. environment:
  102. - AIRFLOW__CORE__EXECUTOR=SequentialExecutor
  103. - AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=sqlite:////opt/airflow/airflow.db
  104. - AIRFLOW__CORE__LOAD_EXAMPLES=False
  105. ports:
  106. - "8082:8080"
  107. volumes:
  108. - ./dags:/opt/airflow/dags
  109. - ./logs:/opt/airflow/logs
  110. - ./data:/opt/airflow/data
  111. - /var/run/docker.sock:/var/run/docker.sock
  112. command: webserver
  113. restart: always
  114. airflow-scheduler:
  115. image: apache/airflow:2.8.1
  116. environment:
  117. - AIRFLOW__CORE__EXECUTOR=SequentialExecutor
  118. - AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=sqlite:////opt/airflow/airflow.db
  119. - AIRFLOW__CORE__LOAD_EXAMPLES=False
  120. volumes:
  121. - ./dags:/opt/airflow/dags
  122. - ./logs:/opt/airflow/logs
  123. - ./data:/opt/airflow/data
  124. - /var/run/docker.sock:/var/run/docker.sock
  125. command: bash -c "airflow db migrate && airflow users create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin && airflow scheduler"
  126. restart: always
  127. volumes:
  128. mysql_data:
  129. ollama_data: