Création d’un conteneur Docker
Commencer avec une issue GitHub


Analyse de la base de code


Test des conteneurs
Devin passe ensuite aux tests de chaque conteneur, en commençant par notre serveur MongoDB puis en poursuivant avec notre environnement Go. Une fois les conteneurs opérationnels, Devin passe au test de l’application elle-même. En parcourant l’historique des commandes de Devin, je vois qu’il a trouvé notre définition d’API Swagger et l’a chargée dans le navigateur intégré pour voir comment fonctionne l’API backend.

Débogage
Comme nous obtenons une erreur Connection refused, Devin passe immédiatement au débogage et à la correction de la configuration Docker. C’est un schéma récurrent dans lequel Devin peut s’auto-corriger au fil d’une session. Devin corrige rapidement le problème de configuration, redémarre le conteneur Docker et résume le travail qu’il a accompli pour nous.
- Devin met en place un fichier docker-compose.yml en plus de notre Dockerfile. Cela nous donne des paramètres d’orchestration plus précis, comme la définition du fonctionnement de notre réseau, la configuration de nos volumes et les dépendances entre services.
- Devin modifie le processus de build, passant de
go mod tidyà une méthode qui nous permet de mettre en cache certaines dépendances dans notre build Docker. - Devin génère un binaire Go lié statiquement plutôt que dynamiquement, ce qui devrait être plus léger pour notre build Docker.
- Devin configure nos certificats CA pour HTTPS et nous permet d’utiliser un fichier .env pour la configuration au lieu de passer directement les variables d’environnement.
- Et surtout, Devin ajoute un service MongoDB dans notre configuration Docker, ce que le PR sur le projet ne fait pas. Il part du principe que le développeur dispose déjà d’une instance MongoDB séparée en cours d’exécution.


