Dans ce tutoriel, nous configurerons Pycharm afin de tester un projet à travers un conteneur Docker.
Pré-requis
- Linux ( OS Debian ) ex : Ubuntu, Xubuntu
- Docker : lien pour l’installer
- Pycharm : lien pour l’installer
- Git : sudo apt-get install git
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.
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.
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!
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.