This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

صورة Docker

تُشحن SnapOtter كصورة Docker واحدة. شغّلها بمفردها فتبدأ تشغيل PostgreSQL 17 وRedis المضمَّنين على واجهة loopback (الوضع المضمَّن)؛ وللإنتاج، شغّلها إلى جانب حاويتَي PostgreSQL 17 وRedis 8 المنفصلتين باستخدام Compose. تعمل صورة التطبيق على جميع المنصات.

بداية سريعة

bash
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

من دون ضبط DATABASE_URL، يعمل هذا في الوضع المضمَّن: يبدأ PostgreSQL وRedis داخل الحاوية على loopback، مع بقاء جميع البيانات ضمن وحدة التخزين SnapOtter-data. اضبط DATABASE_URL وREDIS_URL (كما تفعل حزمة Compose) لاستخدام خدمات خارجية بدلاً من ذلك. راجع الإعداد.

تسريع NVIDIA CUDA

تتضمن الصورة دعم NVIDIA CUDA على amd64. إذا كان لديك معالج رسومات NVIDIA مع NVIDIA Container Toolkit مثبَّتًا، أضف --gpus all:

bash
docker run -d --name SnapOtter --gpus all -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest

تكتشف الصورة CUDA تلقائيًا في وقت التشغيل. من دون --gpus all، أو عندما تكون CUDA غير متاحة، تعمل أدوات الذكاء الاصطناعي على وحدة المعالجة المركزية. الصورة نفسها في كلتا الحالتين.

تسريع معالج الرسومات المدمج من Intel/AMD عبر VA-API أو Quick Sync أو OpenCL غير مدعوم لاستدلال الذكاء الاصطناعي في SnapOtter حاليًا. قد يؤدي تعيين /dev/dri داخل الحاوية إلى كشف جهاز التصيير، لكن وقت تشغيل الذكاء الاصطناعي سيظل يستخدم وحدة المعالجة المركزية ما لم تكن CUDA متاحة.

مقاييس الأداء

اختُبرت على معالج رسومات NVIDIA RTX 4070 (ذاكرة رسومات سعة 12 غيغابايت) مع صورة شخصية JPEG بأبعاد 572x1024.

الأداء بعد الإحماء

الأداةوحدة المعالجة المركزيةمعالج الرسوماتنسبة التسريع
إزالة الخلفية (u2net)2,415ms879ms2.7x
إزالة الخلفية (isnet)2,457ms1,137ms2.2x
تكبير 2x350ms309ms1.1x
تكبير 4x910ms310ms2.9x
OCR (PaddleOCR)137ms94ms1.5x
تمويه الوجه139ms122ms1.1x

البدء البارد (أول طلب بعد تشغيل الحاوية)

الأداةوحدة المعالجة المركزيةمعالج الرسوماتنسبة التسريع
إزالة الخلفية22,286ms4,792ms4.7x
تكبير 2x3,957ms2,318ms1.7x
OCR (PaddleOCR)1,469ms1,090ms1.3x

فحص سلامة CUDA

بعد أول طلب للذكاء الاصطناعي، تبلّغ نقطة نهاية سلامة المسؤول عن حالة معالج رسومات CUDA:

GET /api/v1/admin/health
{"ai": {"gpu": true}}

Docker Compose

تتضمن حزمة Compose الكاملة التطبيق وPostgreSQL 17 وRedis 8. راجع النشر للحصول على docker-compose.yml الكامل. مثال مبسّط:

yaml
services:
  SnapOtter:
    image: snapotter/snapotter:latest
    ports:
      - "1349:1349"
    volumes:
      - SnapOtter-data:/data
      - SnapOtter-workspace:/tmp/workspace
    environment:
      - DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
      - REDIS_URL=redis://redis:6379
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: snapotter
      POSTGRES_PASSWORD: snapotter
      POSTGRES_DB: snapotter
    volumes:
      - SnapOtter-pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U snapotter"]
      interval: 10s
      timeout: 5s
      retries: 12

  redis:
    image: redis:8-alpine
    command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
    volumes:
      - SnapOtter-redisdata:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 12

volumes:
  SnapOtter-data:
  SnapOtter-workspace:
  SnapOtter-pgdata:
  SnapOtter-redisdata:

لتسريع NVIDIA CUDA عبر Docker Compose، أضف قسم deploy إلى خدمة SnapOtter:

yaml
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

تثبيت الإصدارات

العلامةالوصف
latestأحدث إصدار
1.11.0إصدار محدد
1.11أحدث تصحيح في 1.11.x
1أحدث إصدار فرعي في 1.x

المنصات

البنيةدعم معالج الرسوماتملاحظات
linux/amd64NVIDIA CUDAتسريع CUDA كامل لأدوات الذكاء الاصطناعي
linux/arm64وحدة المعالجة المركزية فقطRaspberry Pi 4/5، وApple Silicon عبر Docker Desktop

الترحيل من العلامات السابقة

إذا كنت تستخدم العلامة :cuda، فانتقل إلى :latest واحتفظ بـ --gpus all. دعم معالج الرسومات نفسه، وصورة موحّدة.

تُحفظ بياناتك وإعداداتك في وحدات التخزين.