From e63d335c7e122c4f3b2bf121fe5bca4f94fcbe37 Mon Sep 17 00:00:00 2001 From: BBQ Date: Thu, 12 Feb 2026 21:05:13 +0800 Subject: [PATCH] feat(deploy): add containerd-in-docker support for docker compose Run containerd as a sidecar container instead of requiring host containerd installation. Server mounts shared docker volumes for containerd socket, data and state. --- docker-compose.yml | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index da87fc0a..3eb88806 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,30 @@ services: networks: - memoh-network + containerd: + image: docker.io/library/alpine:latest + container_name: memoh-containerd + entrypoint: ["/bin/sh", "-c"] + command: + - | + apk add --no-cache containerd containerd-ctr + mkdir -p /run/containerd + containerd + privileged: true + volumes: + - containerd_sock:/run/containerd + - containerd_data:/var/lib/containerd + - memoh_data:/opt/memoh/data + healthcheck: + test: ["CMD-SHELL", "test -S /run/containerd/containerd.sock"] + interval: 5s + timeout: 3s + retries: 10 + start_period: 10s + restart: unless-stopped + networks: + - memoh-network + server: build: context: . @@ -50,10 +74,10 @@ services: pid: host volumes: - ./config.toml:/app/config.toml:ro - - /run/containerd/containerd.sock:/run/containerd/containerd.sock - - /var/lib/containerd:/var/lib/containerd + - containerd_sock:/run/containerd + - containerd_data:/var/lib/containerd - server_cni_state:/var/lib/cni - - ${MEMOH_DATA_ROOT:-~/.memoh/data}:${MEMOH_DATA_ROOT:-/opt/memoh/data} + - memoh_data:/opt/memoh/data cap_add: - SYS_ADMIN - NET_ADMIN @@ -67,6 +91,8 @@ services: condition: service_healthy qdrant: condition: service_healthy + containerd: + condition: service_healthy restart: unless-stopped networks: - memoh-network @@ -114,6 +140,12 @@ volumes: driver: local qdrant_data: driver: local + containerd_sock: + driver: local + containerd_data: + driver: local + memoh_data: + driver: local server_cni_state: driver: local