services: minio: image: quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z container_name: minio environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: minio123 command: server /data --console-address ":9001" ports: ["9000:9000", "9001:9001"] volumes: [ "minio-data:/data" ] mc: image: quay.io/minio/mc:latest container_name: mc depends_on: - minio entrypoint: ["/bin/sh","/create-bucket.sh"] volumes: - ./minio/create-bucket.sh:/create-bucket.sh:ro mysql: image: mysql:8.0 container_name: mysql environment: MYSQL_ROOT_PASSWORD: rootpw command: > --server-id=1 --log-bin=mysql-bin --binlog_format=ROW --binlog_row_image=FULL --gtid_mode=ON --enforce_gtid_consistency=ON --default_authentication_plugin=mysql_native_password ports: ["3306:3306"] volumes: - ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro jobmanager: build: . container_name: jobmanager environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager - AWS_REGION=us-east-1 command: jobmanager ports: ["8081:8081"] volumes: - ./jobs/job.sql:/opt/flink/job.sql:ro - ./jobs/products_streaming.sql:/opt/flink/products_streaming.sql:ro - ./jobs/sales_streaming.sql:/opt/flink/sales_streaming.sql:ro depends_on: - mysql - minio taskmanager: build: . environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager - AWS_REGION=us-east-1 command: taskmanager depends_on: - jobmanager - mysql - minio deploy: replicas: 2 trino: image: trinodb/trino:477 container_name: trino ports: ["8080:8080"] volumes: - ./trino/etc/catalog:/etc/trino/catalog:ro - ./trino/lib/mysql-connector-j-8.4.0.jar:/usr/lib/trino/plugin/iceberg/mysql-connector-j-8.4.0.jar:ro superset: image: apache/superset:3.1.0 container_name: superset depends_on: [ trino ] ports: ["8088:8088"] environment: SUPERSET_SECRET_KEY: "superset-secret" ADMIN_USERNAME: "admin" ADMIN_FIRST_NAME: "Admin" ADMIN_LAST_NAME: "User" ADMIN_EMAIL: "admin@example.com" ADMIN_PASSWORD: "admin" SUPERSET_PORT: "8088" GUNICORN_CMD_ARGS: "--bind 0.0.0.0:8088 --workers 2 --timeout 120 --keep-alive 2" entrypoint: ["/bin/sh","/docker-entrypoint.sh"] volumes: - ./superset/docker-entrypoint.sh:/docker-entrypoint.sh:ro soda: build: ./soda container_name: soda depends_on: [ trino ] environment: - PYTHONUNBUFFERED=1 volumes: - ./soda:/soda:ro restart: unless-stopped working_dir: /soda volumes: minio-data: