
L’automatisation des tâches à l’aide de scripts Python est une pratique courante chez les développeurs. Cependant, garantir l’exécution fluide de ces scripts sur plusieurs systèmes peut présenter des défis importants, notamment en raison de la gestion des dépendances. C’est là que Docker s’avère précieux : il permet d’encapsuler votre script Python et ses dépendances associées dans un conteneur portable. Cela garantit une exécution uniforme du script dans différents environnements. Dans ce guide complet, nous décrivons le processus de création d’un script Python pratique et son exécution dans un conteneur Docker.
Les avantages de l’utilisation de Docker pour Python
La gestion des dépendances Python peut rapidement devenir fastidieuse, surtout lorsque différents projets nécessitent des packages conflictuels. Docker résout ces problèmes en intégrant votre script à son environnement. Cela élimine l’excuse courante du « ça marche sur ma machine », garantissant des performances constantes sur toutes les plateformes.
De plus, Docker contribue à maintenir un environnement de développement propre en empêchant l’installation de nombreux packages Python à l’échelle mondiale. Toutes les dépendances sont intégrées à l’environnement Docker, simplifiant ainsi la gestion de projet.
Lorsque vous transmettez votre script à d’autres utilisateurs ou le déployez, Docker simplifie le processus. Plus besoin d’instructions d’installation détaillées : une seule commande suffit pour exécuter votre script.
Création du script Python
Commencez par créer un répertoire de projet pour héberger votre script Python et votre Dockerfile. Utilisez les commandes suivantes pour configurer ce répertoire :
mkdir docker_file_organizercd docker_file_organizer
Ensuite, créez un script nommé organize_files.py qui analysera un répertoire spécifié et catégorisera les fichiers en fonction de leurs extensions :
nano organize_files.py
Insérez le code suivant dans le fichier organize_files.pyos
. Ce script utilise les modules intégrés shutil
pour gérer dynamiquement les fichiers et générer des répertoires :
import osimport shutilSOURCE_DIR = "/files"def organize_by_extension(directory): try: for fname in os.listdir(directory): path = os.path.join(directory, fname) if os.path.isfile(path): ext = fname.split('.')[-1].lower() if '.' in fname else 'no_extension' dest_dir = os.path.join(directory, ext) os.makedirs(dest_dir, exist_ok=True) shutil.move(path, os.path.join(dest_dir, fname)) print(f"Moved: {fname} → {ext}/") except Exception as e: print(f"Error organizing files: {e}")if __name__ == "__main__": organize_by_extension(SOURCE_DIR)
Ce script organise les fichiers d’un répertoire spécifique par extension. Il utilise le os
module pour lister les fichiers, vérifier si chaque élément est un fichier, extraire son extension et créer des dossiers portant leur nom. Enfin, le shutil
module facilite le déplacement de chaque fichier dans son dossier respectif, accompagné d’un message indiquant le nouvel emplacement.
Définition du Dockerfile
Maintenant, créons un Dockerfile qui décrit l’environnement de votre script :
FROM python:latestLABEL maintainer="[email protected]"WORKDIR /usr/src/appCOPY organize_files.py. CMD ["python", "./organize_files.py"]
Ce Dockerfile configure un conteneur avec Python, copie votre script dedans et garantit que le script s’exécute automatiquement au démarrage du conteneur :

Création de l’image Docker
Avant de créer l’image Docker, assurez-vous que Docker est installé sur votre système. Vous pouvez ensuite empaqueter le tout dans une image avec la commande suivante :
sudo docker build -t file-organizer.
Cette commande lit le Dockerfile et assemble la configuration Python nécessaire avec votre script dans une image de conteneur singulière :

Création d’un répertoire d’échantillons
Pour observer notre script en action, créez un dossier de test nommé sample_files et remplissez-le avec différents types de fichiers pour simuler un environnement encombré :
mkdir ~/sample_filestouch ~/sample_files/test.txttouch ~/sample_files/image.jpgtouch ~/sample_files/data.csv
Exécution du script dans Docker
Enfin, lancez votre conteneur Docker et montez le répertoire sample_files dans le conteneur. L’ -v
option connecte votre ~/sample_files
répertoire local à celui du conteneur /files
, permettant au script Python d’accéder aux fichiers et de les organiser :
docker run --rm -v ~/sample_files:/files file-organizer
En utilisant l’ --rm
indicateur, le conteneur sera automatiquement supprimé une fois terminé, réduisant ainsi la consommation d’espace disque :

Pour vérifier que les fichiers ont été triés correctement, utilisez la tree
commande :
tree sample_files

Conclusion
En exécutant votre script Python dans un conteneur Docker, vous bénéficiez d’un environnement de développement rationalisé, portable et cohérent. Cette approche conteneurisée facilite non seulement la réutilisation pour d’autres tâches d’automatisation, mais simplifie également le partage de vos scripts sans souci de dépendances, préservant ainsi l’organisation de votre système. Pour vos futurs projets, envisagez de créer des images Docker multi-scripts, d’automatiser des tâches avec des tâches cron ou d’intégrer vos scripts à des outils essentiels comme Git, Jenkins ou des services cloud pour optimiser vos workflows d’automatisation.
Laisser un commentaire