infoclaw.ru
  • Что такое OpenClaw
  • Установка
  • Навыки
  • Интеграции
  • Сравнения
  • Новости
FAQ
  1. Главная
  2. Для разработчиков
  3. OpenClaw в Docker: контейнеризация агента для VPS и продакшена
Для разработчиков

OpenClaw в Docker: контейнеризация агента для VPS и продакшена

Запустите OpenClaw в Docker-контейнере: Dockerfile, docker-compose, персистентные сессии, переменные окружения, безопасность и автозапуск на VPS.

24 марта 2026 г. · 4 мин чтения
OpenClaw в Docker: контейнеризация агента для VPS и продакшена

Docker-контейнер для OpenClaw решает три проблемы сразу: изоляция среды, простой деплой на любой VPS и гарантированный автозапуск после перезагрузки сервера. Это стандарт для продакшн-развёртывания агентов.

Зачем контейнеризировать OpenClaw

Без Docker:

  • «Работает у меня, не работает на сервере» — разные версии Node.js, зависимостей
  • Ручной перезапуск после краша или ребута
  • Сложно масштабировать и обновлять

С Docker:

  • Одинаковое окружение везде — dev, staging, production
  • Автоматический рестарт через restart: always
  • Изоляция: агент не имеет доступа к хосту сверх разрешённого
  • Обновление — один docker pull + docker-compose up -d

Dockerfile

# Dockerfile
FROM node:22-alpine AS base

# Зависимости безопасности
RUN apk add --no-cache git ca-certificates

# Создаём непривилегированного пользователя
RUN addgroup -S openclaw && adduser -S openclaw -G openclaw

WORKDIR /app

# Устанавливаем OpenClaw глобально
RUN npm install -g @openclaw/cli@latest

# Создаём директории для данных
RUN mkdir -p /app/sessions /app/workspace && \
    chown -R openclaw:openclaw /app

# Переключаемся на непривилегированного пользователя
USER openclaw

# Рабочая директория для проектов
WORKDIR /workspace

# Переменные окружения по умолчанию
ENV NODE_ENV=production
ENV OPENCLAW_HOME=/app

# Порт (если используете HTTP API)
EXPOSE 3000

# Healthcheck
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
  CMD openclaw --version || exit 1

CMD ["openclaw", "--no-interactive", "--session", "main"]

docker-compose.yml для полного стека

version: "3.9"

services:
  openclaw:
    build: .
    image: myorg/openclaw-agent:latest
    container_name: openclaw-agent
    restart: always

    environment:
      # API ключ из .env файла
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
      OPENCLAW_MODEL: claude-sonnet-4-6

      # Ограничение расходов
      OPENCLAW_MAX_TOKENS_PER_SESSION: 100000
      OPENCLAW_HEARTBEAT_INTERVAL: 300

    volumes:
      # Персистентные сессии
      - openclaw-sessions:/app/sessions
      # Рабочая директория — монтируем ваш проект
      - ./workspace:/workspace:rw
      # Конфиг OpenClaw
      - ./openclaw.json:/app/.openclaw/openclaw.json:ro
      # AGENTS.md вашего проекта
      - ./AGENTS.md:/workspace/AGENTS.md:ro

    # Ограничения ресурсов
    deploy:
      resources:
        limits:
          cpus: "1.0"
          memory: 1G
        reservations:
          cpus: "0.25"
          memory: 256M

    # Сети: изолируем агента
    networks:
      - agent-net

    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "5"

  # ChromaDB для RAG (опционально)
  chroma:
    image: chromadb/chroma:latest
    container_name: chroma-db
    restart: always
    volumes:
      - chroma-data:/chroma/chroma
    networks:
      - agent-net
    # Не открываем порт наружу — только внутри сети

volumes:
  openclaw-sessions:
  chroma-data:

networks:
  agent-net:
    driver: bridge

Файл .env (не коммитить в Git!)

# .env
ANTHROPIC_API_KEY=sk-ant-api03-...
BEGET_DEPLOY_KEY=...
DATABASE_URL=postgresql://user:pass@db:5432/myapp

Добавьте в .gitignore:

.env
.env.local
.env.*.local

Сборка и запуск

# Первый запуск
docker-compose up -d --build

# Просмотр логов
docker-compose logs -f openclaw

# Подключение к агенту в интерактивном режиме
docker-compose exec openclaw openclaw

# Остановка
docker-compose down

# Обновление до новой версии
docker-compose pull && docker-compose up -d

Конфигурация openclaw.json

{
  "model": "claude-sonnet-4-6",
  "mcpServers": {
    "rag": {
      "command": "node",
      "args": ["/app/mcp-servers/rag/dist/index.js"],
      "env": {
        "CHROMA_URL": "http://chroma:8000"
      }
    }
  },
  "permissions": {
    "allowedPaths": ["/workspace/src", "/workspace/docs"],
    "deniedPaths": ["/workspace/.env*", "/workspace/secrets"]
  },
  "sessions": {
    "persistPath": "/app/sessions",
    "maxAge": "30d"
  }
}

Продакшен: Traefik + HTTPS

Если нужен веб-интерфейс агента с HTTPS:

services:
  traefik:
    image: traefik:v3
    command:
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencrypt.acme.email=you@example.com"
      - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
      - "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - letsencrypt:/letsencrypt

  openclaw:
    # ... остальная конфигурация
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.openclaw.rule=Host(`agent.mydomain.com`)"
      - "traefik.http.routers.openclaw.tls.certresolver=letsencrypt"

Мониторинг и алерты

Добавьте health endpoint и настройте уведомления при падении:

# Проверка статуса
docker inspect --format='{{.State.Health.Status}}' openclaw-agent

# Скрипт для Telegram-уведомлений при падении
# /usr/local/bin/check-agent.sh
#!/bin/bash
STATUS=$(docker inspect --format='{{.State.Status}}' openclaw-agent 2>/dev/null)
if [ "$STATUS" != "running" ]; then
  curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
    -d "chat_id=${TELEGRAM_CHAT_ID}" \
    -d "text=⚠️ OpenClaw agent is DOWN on $(hostname)"
fi
# Cron для проверки каждые 5 минут
*/5 * * * * /usr/local/bin/check-agent.sh

Безопасность в контейнере

Минимальные права:

  • Всегда запускайте от непривилегированного пользователя (USER openclaw)
  • Монтируйте workspace как rw, конфиги как :ro
  • Не открывайте лишние порты

Изоляция сети:

  • Внутренние сервисы (ChromaDB, PostgreSQL) только в agent-net
  • Не открывайте их порты на хост через ports:

Секреты:

  • Используйте Docker Secrets для production: docker secret create anthropic_key -
  • Никогда не вшивайте ключи в Dockerfile или docker-compose.yml

Обновление без даунтайма

# Обновление образа
docker pull myorg/openclaw-agent:latest

# Перезапуск с нулевым даунтаймом (если используете Swarm/K8s)
docker service update --image myorg/openclaw-agent:latest openclaw_openclaw

# Для обычного compose
docker-compose up -d --no-deps --build openclaw

Частые ошибки

1. Volume permissions Если контейнер не может писать в volume — проблема с правами. Решение: chown -R 1000:1000 /path/to/volume на хосте.

2. Нет персистентности сессий Если не монтируете volume для сессий — при рестарте контейнера весь контекст теряется.

3. Утечка API ключей Никогда не добавляйте .env в Git. Используйте docker secret или переменные CI/CD.

4. Забыли restart: always После ребута сервера агент не запустится. Всегда добавляйте restart: always в production.

Итог

Docker-развёртывание OpenClaw занимает 30-60 минут при первой настройке. Результат: агент работает 24/7, автоматически перезапускается, изолирован от хоста и легко обновляется. Это минимальный стандарт для любого продакшн-агента.

Следующий шаг: запустите RAG-поиск по документам прямо в этом контейнере.

Теги: DockerконтейнеризацияVPSпродакшенdocker-composeдеплойLinux

Вам также может быть интересно

Для разработчиков

Как создать MCP-сервер для OpenClaw: пошаговый гайд

24 марта 2026 г. 6 мин
Для разработчиков

OpenClaw API для разработчиков: интеграция в свои проекты

18 марта 2026 г. 6 мин
Установка

Установка OpenClaw на Linux: Ubuntu, Debian, VPS — пошаговая инструкция 2026

19 марта 2026 г. 6 мин
💰
Инструмент Калькулятор стоимости AI-моделей Сравните цены GPT-4o, Claude, DeepSeek за минуту
→
🎯
Квиз · 2 мин Какой OpenClaw подходит вам? 5 вопросов — персональная рекомендация
→

Популярное

  1. Moltbook: соцсеть для AI-агентов с 1,5 миллиона ботов Что такое OpenClaw
  2. OpenClaw купил автомобиль: как AI-агент сэкономил $4,200 Сценарии использования
  3. Multi-agent в OpenClaw: как запустить команду AI-агентов Сценарии использования
  4. Что такое OpenClaw: полный гид по первому вирусному ИИ-агенту 2026 года Что такое OpenClaw
  5. OpenClaw 2026.7.2-beta.3: новые возможности удалённых сессий, автоматизации и безопасности Новости

Категории

  • Что такое OpenClaw (8)
  • Установка (16)
  • Навыки (11)
  • Интеграции (15)
  • Сравнения (9)
  • Сценарии использования (22)
  • Новости (96)
  • Enterprise / NemoClaw (7)
  • Безопасность (10)
  • Сообщество (1)
  • Для разработчиков (6)
  • Вопросы и ответы (2)
  • Глоссарий (4)

Недавнее

  • OpenClaw 2026.7.2-beta.3: новые возможности удалённых сессий, автоматизации и безопасности сегодня
  • OpenClaw 2026.7.2-beta.2: расширенные удалённые сессии и улучшения безопасности вчера
  • OpenClaw 2026.7.2-beta.1: новый уровень гибкости и безопасности удалённых сессий 3 дн. назад

Быстрый старт

Новичок в OpenClaw? Начните отсюда:

  • → Что такое OpenClaw
  • → Установка за 10 минут
  • → Топ-10 навыков
  • → Подключить Telegram

Теги

установканавыкиtelegramwhatsappmacoswindowsenterpriseголосopen-sourcellmprivacynode.js
infoclaw.ru

Независимый информационный ресурс об ИИ-агенте OpenClaw. Статьи, гайды и новости на русском языке.

Разделы

  • Что такое OpenClaw
  • Установка
  • Навыки
  • Интеграции
  • Сравнения
  • Enterprise
  • Безопасность
  • Новости

Интеграции

  • Telegram
  • WhatsApp
  • Slack
  • Discord
  • iMessage
  • Teams
  • Matrix
  • Все (20+) →

Ресурсы

  • Вопросы и ответы
  • Глоссарий
  • Для разработчиков
  • Сообщество
  • Карта сайта

© 2026 infoclaw.ru — Независимый ресурс. Не является официальным сайтом проекта OpenClaw.

Политика конфиденциальности Пользовательское соглашение Контакты