Skip to Content

Docker et Compose

Les applications IronFlock sont empaquetées comme des images Docker. Le Dockerfile définit l’environnement d’exécution de votre code applicatif.

Dockerfile

Chaque application nécessite un Dockerfile dans le dossier racine :

FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "main.py"]

Support multi-architecture

Pour cibler différentes architectures d’appareils, ajoutez des Dockerfiles spécifiques à l’architecture :

FichierArchitectureExemples d’appareils
DockerfilePar défaut (utilisé comme fallback)Tout
Dockerfile.armv7ARMv7Raspberry Pi 3/4 (32 bits)
Dockerfile.arm64ARM64NVIDIA Jetson, RPi 4/5 (64 bits)
Dockerfile.amd64AMD64PC industriels, Intel NUCs

Docker Compose

Pour les applications avec plusieurs services, utilisez Docker Compose :

# docker-compose.yml version: "3" services: app: build: . volumes: - data:/data ports: - "5000:5000" restart: unless-stopped redis: image: redis:7-alpine restart: unless-stopped volumes: data:

Les services Compose ne reçoivent pas de dossier d’application : conservez les fichiers dans un volume nommé, comme data ci-dessus. Il survit aux redémarrages et aux mises à jour, et il est supprimé lorsque l’application est retirée de l’appareil. Monter un chemin de l’hôte, comme /data:/data ou /shared:/shared, nécessite un accès privilégié.

Bonnes pratiques

  • Gardez les images légères — Utilisez des images de base -slim ou -alpine pour réduire les temps de téléchargement.
  • Épinglez les versions — Utilisez des tags de version spécifiques (python:3.11-slim) plutôt que latest.
  • Mettez en cache les couches — Copiez les fichiers de dépendances avant le code applicatif.
  • Utilisez .dockerignore — Excluez les fichiers inutiles du contexte de build.
Last updated on