version: '3.7' services: flask-app: build: context: ../ dockerfile: docker/Dockerfile container_name: flask-app ports: - "1337:1337" environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - QDRANT_HOST=qdrant - SCRAPYD_HOST=scrapyd - OPENWEATHERMAP_API_KEY=${OPENWEATHERMAP_API_KEY} depends_on: - qdrant - ocr_service - airflow-webserver - airflow-scheduler - scrapyd - node_red - mailhog - libreoffice qdrant: image: qdrant/qdrant ports: - "6333:6333" ocr_service: image: jbarlow83/ocrmypdf ports: - "8081:8081" airflow-webserver: image: apache/airflow:latest container_name: airflow-webserver command: webserver ports: - "8082:8082" environment: - AIRFLOW__CORE__EXECUTOR=LocalExecutor - AIRFLOW__CORE__SQL_ALCHEMY_CONN=sqlite:////usr/local/airflow/airflow.db - AIRFLOW__CORE__LOAD_EXAMPLES=False volumes: - ./dags:/usr/local/airflow/dags - ./logs:/usr/local/airflow/logs - ./plugins:/usr/local/airflow/plugins airflow-scheduler: image: apache/airflow:latest container_name: airflow-scheduler command: scheduler environment: - AIRFLOW__CORE__EXECUTOR=LocalExecutor - AIRFLOW__CORE__SQL_ALCHEMY_CONN=sqlite:////usr/local/airflow/airflow.db - AIRFLOW__CORE__LOAD_EXAMPLES=False volumes: - ./dags:/usr/local/airflow/dags - ./logs:/usr/local/airflow/logs - ./plugins:/usr/local/airflow/plugins depends_on: - airflow-webserver scrapyd: image: vimagick/scrapyd ports: - "6800:6800" volumes: - ./scrapy_project:/scrapy_project command: ["scrapyd"] node_red: image: nodered/node-red ports: - "1880:1880" mailhog: image: mailhog/mailhog ports: - "1025:1025" libreoffice: image: linuxserver/libreoffice ports: - "8084:8084"