-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
96 lines (92 loc) · 2.99 KB
/
docker-compose.yml
File metadata and controls
96 lines (92 loc) · 2.99 KB
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
93
94
95
96
services:
# ──────────────────────────────────────────────
# GUI Desktop VM (Xfce over WebRTC)
# ──────────────────────────────────────────────
desktop:
build:
context: ./app/gui
dockerfile: Dockerfile
container_name: simple-agent-desktop
security_opt:
- seccomp:unconfined
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- CUSTOM_USER=agent
- PASSWORD=password
- RESOLUTION=1064x1064
- SELKIES_IS_MANUAL_RESOLUTION_MODE=true
- SELKIES_MANUAL_WIDTH=1064
- SELKIES_MANUAL_HEIGHT=1064
volumes:
- ./app/gui/config:/config
- ./app/gui/custom-cont-init.d:/custom-cont-init.d:ro
ports:
- "3001:3000"
shm_size: "2gb"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000 || exit 1"]
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
networks:
- agent-net
# ──────────────────────────────────────────────
# OmniParser (Gradio UI parser server)
# First run downloads ~4GB model weights
# ──────────────────────────────────────────────
omniparser:
build:
context: .
dockerfile: docker/omniparser/Dockerfile
container_name: omniparser-server
volumes:
- omniparser-weights:/app/OmniParser/weights
ports:
- "7861:7861"
environment:
- HF_HUB_ENABLE_HF_TRANSFER=1
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:7861')\" || exit 1"]
interval: 15s
timeout: 10s
retries: 30
start_period: 120s
restart: unless-stopped
networks:
- agent-net
# ──────────────────────────────────────────────
# Main Agent (Python TUI)
# ──────────────────────────────────────────────
agent:
build:
context: .
dockerfile: Dockerfile
container_name: craftbot
env_file:
- .env
environment:
- OMNIPARSER_BASE_URL=http://omniparser-server:7861
- USE_OMNIPARSER=${USE_OMNIPARSER:-True}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./workspace:/app/workspace
- ./config.json:/app/config.json
depends_on:
desktop:
condition: service_healthy
omniparser:
condition: service_healthy
stdin_open: true
tty: true
restart: unless-stopped
networks:
- agent-net
volumes:
omniparser-weights:
networks:
agent-net:
driver: bridge