Tester depuis Pycharm dans un conteneur Docker

Dans ce tutoriel, nous configurerons Pycharm afin de tester un projet à travers un conteneur Docker.

upidev, tests python pycharm docker

Pré-requis

Récupération des sources

Le projet

git clone https://github.com/Upid3v/test-python-with-pycharm-on-container.git

L’image docker avec Python

On récupère une image avec l’OS Alpine ( un mini linux ) et Python 2.7 pré-installé.

docker login
docker image pull python:2.7

Création d’un Dockerfile

Afin de tester le projet Python via le conteneur Docker, nous créons un fichier de configuration ( Dockerfile custom ) à partir de l’image python:2.7 dans le répertoire courant du projet.

# Dockerfile

FROM python:2.7

WORKDIR /srv/python_proj

COPY upidev_lib /srv/upidev_lib

RUN apt-get update
RUN apt-get install -y python-setuptools
RUN /usr/bin/python2.7 /srv/upidev_lib/setup.py install

COPY python_proj /srv/python_proj

ENV http_proxy localhost:8465
ENV https_proxy localhost:8465

On construit ensuite une image custom à partir du Dockerfile.
# -t permet de tagger l’image pour facilement la retrouver.
# Sinon un nom est généré aléatoirement à chaque build

cd <>
docker build -t upidev_docker_test .

Configuration de Pycharm

Interpréteur de projet pour Docker

Cet interpréteur de projet permettra de se connecter au conteneur lors de l’exécution de tests. Vous trouverez la fenêtre de création à Settings -> Project -> Project Interpreter -> Engrenage en haut à droite -> Add.

pycharm project interpreter docker

Afin de gérer nos tests depuis Pycharm, créons une configuration de tests.
Depuis l’écran principal, cliquez sur Run puis Edit Configuration. Une fois les paramètres complétés, cliquez sur la croix verte.

Docker container settings : les répertoires renseignés ici seront synchronisés entre l’host ( votre OS ) et le conteneur.

pycharm test configuration

Félicitation, la configuration du projet est terminé. Maintenant, on profite.

Cliquez dans la colonne à gauche de la fenêtre d’édition de code, puis placez un point d’arrêt et lancez le test.

Il sera exécuté à travers le conteneur Docker. Tadammm!

pycharm python debugger

Si vous modifiez le code source dans upidev_lib, pensez à relancer le build de l’image sinon le package upidev_lib installé dans /usr/local/lib/python2.7/site-packages du conteneur ne sera pas mis à jour.

0

Laisser un commentaire