Files

75 lines
2.2 KiB
YAML

services:
# --- LLM ENGINE ---
ollama:
build:
context: ./ollama
args:
- BASE_IMAGE=ollama/ollama:rocm
container_name: ollama
restart: always
shm_size: ${SHM_SIZE}
privileged: true
devices:
- /dev/dri:/dev/dri:rwm
group_add:
- 109
volumes:
- ./storage/ollama_models:/root/.ollama
environment:
- OLLAMA_HOST=0.0.0.0:11434
- MODEL_LIST=${MODEL_LIST}
- OLLAMA_KEEP_ALIVE=${OLLAMA_KEEP_ALIVE}
- OLLAMA_FLASH_ATTENTION=1
ports:
- "11434:11434"
dns:
- ${DNS_SERVER}
networks:
- net.ghost.openclaw
# --- CORE AGENT (GATEWAY) ---
agent:
build:
context: ./openclaw
dockerfile: Containerfile
container_name: openclaw-agent
user: "0:0"
depends_on:
- ollama
environment:
- OPENCLAW_GATEWAY_MODE=local
- OPENCLAW_GATEWAY_PASSWORD=${OPENCLAW_PASSWORD}
- OPENCLAW_DEFAULT_MODEL=${OPENCLAW_DEFAULT_MODEL:-ollama/qwen3-general}
- OPENCLAW_CONFIG_PATH=/home/node/.openclaw/openclaw.json
- OPENCLAW_STATE_DIR=/home/node/.openclaw
- OLLAMA_URL=http://127.0.0.1:11434
- OLLAMA_API_KEY=ollama-local
- DOCKER_HOST=unix:///var/run/docker.sock
- OPENCLAW_SANDBOX_UIDSHIFT=${OPENCLAW_SANDBOX_UIDSHIFT}
- OPENCLAW_SANDBOX_HOST_WORKSPACE=${OPENCLAW_SANDBOX_HOST_WORKSPACE}
- OPENCLAW_SANDBOX_CONTAINER_WORKSPACE=${OPENCLAW_SANDBOX_CONTAINER_WORKSPACE}
ports:
- "8080:8080"
volumes:
- ${HOST_OPENCLAW_JSON_PATH}:/home/node/.openclaw/openclaw.json${HOST_OPENCLAW_CONFIG_MOUNT_OPTS}
- ${HOST_WORKSPACE_PATH}:/home/node/.openclaw/workspace${HOST_OPENCLAW_WORKSPACE_MOUNT_OPTS}
- ${HOST_DOCKER_SOCKET_PATH}:/var/run/docker.sock${HOST_DOCKER_SOCKET_MOUNT_OPTS}
- ${HOST_REPOS_PATH}:/repos${HOST_REPOS_MOUNT_OPTS}
networks:
- net.ghost.openclaw
# --- NETWORK TUNNEL (SIDECAR) ---
ollama-bridge:
image: docker.io/alpine/socat:latest
container_name: openclaw-ollama-bridge
depends_on:
- agent
network_mode: "service:agent"
command: TCP-LISTEN:11434,fork TCP:ollama:11434
stop_grace_period: 1s
restart: always
networks:
net.ghost.openclaw:
driver: bridge