تُرجمت هذه الصفحة آليًا. هل لاحظت خطأً؟ساعد في تحسينها.
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
تمويه الوجه139ms122ms1.1x

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

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

لم يتم تضمين OCR في مقارنة CUDA. تستخدم كل من طبقة Tesseract المضمنة وطبقات RapidOCR/ONNX الاختيارية CPU، بما في ذلك عندما تتمتع الحاوية بإمكانية الوصول إلى NVIDIA GPU.

فحص سلامة 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 -d 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أحدث إصدار
2.2.0إصدار محدد
2.2أحدث تصحيح في 2.2.x
2أحدث إصدار فرعي في 2.x

المنصات ​

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

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

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

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