File size: 2,330 Bytes
f52d137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
version: '3.8'

services:
  aredemo:
    build:
      context: .
      dockerfile: Dockerfile
      platforms:
        - linux/amd64
      secrets:
        - github_username
        - github_token
    ports:
      - "7860:7860"
    environment:
      - FLASK_ENV=production
      - NODE_ENV=production
      - STORAGE_PATH=/app/data
    volumes:
      # Mount data directory for MCP files and session storage
      - ./data:/app/data
      # Mount logs or data if needed
      - ./logs:/app/logs

  aredemo-dev:
    build:
      context: .
      dockerfile: Dockerfile
      platforms:
        - linux/amd64
      secrets:
        - github_username
        - github_token
    ports:
      - "7860:7860"
      # Expose a range of ports for ARE processes (1024-1100 should be enough for dev)
      - "1024-1100:1024-1100"
    environment:
      - FLASK_ENV=development
      - NODE_ENV=development
      - FLASK_DEBUG=1
    volumes:
      # Mount Python source code for hot reloading
      - ./app.py:/app/app.py
      - ./backend:/app/backend
      # Mount MCP demo prompts file
      - ./mcp_demo_prompts.json:/app/mcp_demo_prompts.json
      # Mount React frontend source for development
      - ./frontend/src:/app/frontend/src
      - ./frontend/public:/app/frontend/public
      - ./frontend/package.json:/app/frontend/package.json
      # Mount logs
      - ./logs:/app/logs
    develop:
      watch:
        - action: sync
          path: ./app.py
          target: /app/app.py
        - action: sync
          path: ./backend
          target: /app/backend
        - action: sync+restart
          path: ./frontend/src
          target: /app/frontend/src
        - action: sync+restart
          path: ./frontend/public
          target: /app/frontend/public

  # Separate React dev server for true hot reloading
  react-dev:
    build:
      context: ./frontend
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
      - FAST_REFRESH=true
      - WDS_SOCKET_HOST=localhost
    volumes:
      - ./frontend/src:/app/src
      - ./frontend/public:/app/public
      - ./frontend/package.json:/app/package.json
      - /app/node_modules
    command: npm start

secrets:
  github_username:
    environment: GITHUB_USERNAME
  github_token:
    environment: GITHUB_TOKEN