Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
73 lines (69 loc) · 2.06 KB
/
Copy pathdocker-compose.yml
File metadata and controls
73 lines (69 loc) · 2.06 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
x-nullclaw-build: &nullclaw-build
context: .
dockerfile: Dockerfile
target: ${NULLCLAW_DOCKER_TARGET:-release}
args:
ZIG_VERSION: "0.16.0"
VERSION: ${NULLCLAW_VERSION:-dev}
services:
init-data:
image: alpine:3.23
profiles: ["agent", "gateway"]
environment:
NULLCLAW_UID: "${NULLCLAW_UID:-65534}"
NULLCLAW_GID: "${NULLCLAW_GID:-65534}"
command:
- sh
- -ec
- |
case "$$NULLCLAW_UID" in (""|*[!0-9]*) echo "invalid NULLCLAW_UID" >&2; exit 1;; esac
case "$$NULLCLAW_GID" in (""|*[!0-9]*) echo "invalid NULLCLAW_GID" >&2; exit 1;; esac
mkdir -p /nullclaw-data/workspace
chown -R "$$NULLCLAW_UID:$$NULLCLAW_GID" /nullclaw-data
volumes:
- nullclaw-data:/nullclaw-data
- ./workspace:/nullclaw-data/workspace
restart: "no"
agent:
image: ${NULLCLAW_IMAGE:-nullclaw:local}
build: *nullclaw-build
profiles: ["agent"]
user: "${NULLCLAW_UID:-65534}:${NULLCLAW_GID:-65534}"
depends_on:
init-data:
condition: service_completed_successfully
stdin_open: true
tty: true
command: ["agent"]
env_file:
- path: .env
required: false
volumes:
- nullclaw-data:/nullclaw-data
- ./workspace:/nullclaw-data/workspace
restart: unless-stopped
gateway:
image: ${NULLCLAW_IMAGE:-nullclaw:local}
build: *nullclaw-build
profiles: ["gateway"]
user: "${NULLCLAW_UID:-65534}:${NULLCLAW_GID:-65534}"
depends_on:
init-data:
condition: service_completed_successfully
command: ["gateway", "--port", "${NULLCLAW_PORT:-3210}", "--host", "0.0.0.0"]
ports:
- "${NULLCLAW_BIND:-127.0.0.1}:${NULLCLAW_PORT:-3210}:${NULLCLAW_PORT:-3210}"
env_file:
- path: .env
required: false
volumes:
- nullclaw-data:/nullclaw-data
- ./workspace:/nullclaw-data/workspace
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:${NULLCLAW_PORT:-3210}/health"]
interval: 30s
timeout: 5s
retries: 3
volumes:
nullclaw-data: