# Roadmap Dockerisation RPA Vision > Document créé le 26 janvier 2026 - À implémenter après période de démos --- ## 1. CONTEXTE Objectif : Faciliter le déploiement, les mises à jour et la maintenance via Docker. ### Situation actuelle - Installation manuelle avec multiples venvs Python - Dépendances complexes (PyTorch, CLIP, rfdetr, etc.) - Configuration GPU manuelle - Difficulté à reproduire l'environnement chez les clients --- ## 2. AVANTAGES ATTENDUS | Aspect | Bénéfice | |--------|----------| | **Déploiement** | Installation en une commande (`docker-compose up`) | | **Reproductibilité** | Même environnement partout (dev/prod/client) | | **Isolation** | Pas de conflits de dépendances Python/Node | | **Mises à jour** | Pull nouvelle image, redémarrer | | **Rollback** | Revenir à une version précédente instantanément | | **Multi-tenant** | Plusieurs instances isolées sur même machine | | **CI/CD** | Tests automatisés dans containers identiques à la prod | --- ## 3. DÉFIS SPÉCIFIQUES À RPA VISION | Contrainte | Solution | Complexité | |------------|----------|------------| | **GPU (CUDA)** | `nvidia-docker` / `--gpus all` | Faible | | **Accès écran (X11)** | Monter `/tmp/.X11-unix` + variable `DISPLAY` | Moyenne | | **Capture souris/clavier** | `--privileged` ou capabilities spécifiques | Moyenne | | **Ollama** | Container séparé ou accès host via réseau | Faible | | **Stockage modèles** | Volumes persistants (éviter re-téléchargement) | Faible | | **Citrix/VDI** | Tests spécifiques nécessaires | Haute | --- ## 4. ARCHITECTURE DOCKER PROPOSÉE ```yaml # docker-compose.yml (structure cible) version: '3.8' services: # === FRONTEND === vwb-frontend: build: ./visual_workflow_builder/frontend_v4 ports: - "3000:3000" depends_on: - vwb-backend # === BACKEND VWB (GPU) === vwb-backend: build: ./visual_workflow_builder/backend ports: - "5001:5001" volumes: - ./models:/app/models:ro - ./data:/app/data deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] depends_on: - redis - ollama # === DASHBOARD === web-dashboard: build: ./web_dashboard ports: - "5004:5004" volumes: - ./data:/app/data depends_on: - redis # === OLLAMA (GPU) === ollama: image: ollama/ollama:latest ports: - "11434:11434" volumes: - ollama-models:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] # === CACHE === redis: image: redis:7-alpine ports: - "6379:6379" volumes: - redis-data:/data # === BASE DE DONNÉES (optionnel) === postgres: image: postgres:15-alpine environment: POSTGRES_DB: rpa_vision POSTGRES_USER: rpa POSTGRES_PASSWORD_FILE: /run/secrets/db_password volumes: - postgres-data:/var/lib/postgresql/data secrets: - db_password volumes: ollama-models: redis-data: postgres-data: secrets: db_password: file: ./secrets/db_password.txt ``` --- ## 5. PLAN D'IMPLÉMENTATION ### Phase 1 : Services Web (Priorité haute) **Durée estimée : 1-2 jours** - [ ] Dockerfile pour `web-dashboard` - [ ] Dockerfile pour `vwb-frontend` - [ ] Configuration nginx reverse proxy - [ ] docker-compose.yml minimal (sans GPU) - [ ] Tests de déploiement **Gains** : Déploiement simplifié pour 60% du système ### Phase 2 : Backend avec GPU (Priorité moyenne) **Durée estimée : 2-3 jours** - [ ] Dockerfile pour `vwb-backend` avec CUDA - [ ] Intégration Ollama container - [ ] Volumes pour modèles (UI-DETR-1, CLIP) - [ ] Tests GPU dans container - [ ] Optimisation taille image (multi-stage build) **Gains** : Environnement ML reproductible ### Phase 3 : Agent d'exécution RPA (Priorité basse) **Durée estimée : 3-5 jours** - [ ] Gestion accès X11/Wayland - [ ] Permissions souris/clavier - [ ] Tests sur différents environnements (natif, Citrix, VDI) - [ ] Documentation des limitations **Gains** : Système complet dockerisé --- ## 6. ALTERNATIVE HYBRIDE (Recommandée initialement) Pour simplifier le déploiement initial : ``` ┌─────────────────────────────────────────────────────┐ │ DOCKER │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Frontend │ │ Dashboard │ │ Ollama │ │ │ │ :3000 │ │ :5004 │ │ :11434 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Backend │ │ Redis │ │ │ │ :5001 │ │ :6379 │ │ │ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────┘ │ │ API calls ▼ ┌─────────────────────────────────────────────────────┐ │ HOST (non dockerisé) │ │ ┌─────────────────────────────────────────────┐ │ │ │ Agent RPA (accès direct écran/souris) │ │ │ │ - pyautogui │ │ │ │ - Capture écran │ │ │ └─────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘ ``` **Avantages** : - 80% des bénéfices Docker - Évite les complications X11/permissions - Plus simple à débugger - Compatible tous environnements --- ## 7. COMMANDES DE DÉPLOIEMENT CIBLES ```bash # Installation complète git clone https://github.com/xxx/rpa-vision-v3.git cd rpa-vision-v3 docker-compose up -d # Mise à jour docker-compose pull docker-compose up -d # Rollback docker-compose down docker tag rpa-vision/backend:latest rpa-vision/backend:backup docker pull rpa-vision/backend:v1.2.3 docker-compose up -d # Logs docker-compose logs -f vwb-backend # Status docker-compose ps ``` --- ## 8. PRÉREQUIS CLIENT ### Minimum - Docker 24+ - Docker Compose 2.20+ - 16 Go RAM - 50 Go disque ### Avec GPU (recommandé) - NVIDIA Driver 535+ - nvidia-container-toolkit - GPU avec 8+ Go VRAM ### Commande de vérification ```bash # Vérifier Docker docker --version docker-compose --version # Vérifier GPU Docker docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi ``` --- ## 9. REGISTRE D'IMAGES Options pour héberger les images : | Option | Avantages | Inconvénients | |--------|-----------|---------------| | Docker Hub | Gratuit, simple | Images publiques ou payant | | GitHub Container Registry | Intégré GitHub | Limites de stockage | | AWS ECR | Scalable, privé | Coût AWS | | Self-hosted (Harbor) | Contrôle total | Maintenance | **Recommandation** : GitHub Container Registry pour commencer (gratuit, privé possible) --- ## 10. LIENS UTILES - [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) - [Docker Compose GPU](https://docs.docker.com/compose/gpu-support/) - [Ollama Docker](https://hub.docker.com/r/ollama/ollama) - [Multi-stage builds](https://docs.docker.com/build/building/multi-stage/) --- *Document à compléter après la période de démos* *Prochaine révision prévue : Février 2026*