Exécuter des scripts Python avec Docker : un guide étape par étape

Exécuter des scripts Python avec Docker : un guide étape par étape

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 shutilpour 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 osmodule 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 shutilmodule 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éer un fichier Docker

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éer une image Docker

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’ -voption connecte votre ~/sample_filesré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’ --rmindicateur, le conteneur sera automatiquement supprimé une fois terminé, réduisant ainsi la consommation d’espace disque :

Exécuter un script dans Docker

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

tree sample_files

Vérifier le résultat avec la commande Tree

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.

Source et images

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *