File size: 1,573 Bytes
3a1c55b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
services:
  gradio_app:
    image: ethicalabs/blossomtune-orchestrator:latest
    container_name: gradio_app
    build:
      context: .
      dockerfile: Dockerfile
    command: ["gradio_app"]
    ports:
      - "7860:7860" # Expose the Gradio port to the host machine
    volumes:
      - ./data/db:/data/db # Mount the database directory for persistence
      - ./data/certs:/data/certs:ro # Mount TLS certificates (read-only)
      - ./data/keys:/data/keys:rw   # Mount authentication keys (read-write)
      - ./data/cache:/root/.cache # Mount Hugging Face cache for models/datasets
    depends_on:
      - superlink # Optional: Ensures superlink starts before the UI
    environment:
      HF_TOKEN: ${HF_TOKEN}
      SUPERLINK_MODE: external
      SUPERLINK_HOST: host.docker.internal
  superlink:
    image: ethicalabs/blossomtune-orchestrator:latest
    container_name: superlink
    build:
      context: .
      dockerfile: Dockerfile
    command: ["superlink"]
    ports:
      - "127.0.0.1:9092:9092" # Port for SuperNode connections
      - "9093:9093" # Port for Flower CLI (e.g., flwr run)
    volumes:
      - ./data/certs:/data/certs:ro # Mount TLS certificates (read-only)
      - ./data/keys:/data/keys:ro   # Mount authentication keys (read-only)
      - ./data/results:/data/results # Mount results directory for persisting run artifacts
  mailhog:
    image: mailhog/mailhog
    container_name: mailhog
    restart: always
    volumes:
      - ./mailhog.auth:/mailhog.auth:ro
      - ./data:/data:rw
    ports:
      - "1025:1025"
      - "8025:8025"