pix icon indicating copy to clipboard operation
pix copied to clipboard

[TECH] Utiliser la version de base de données de Scalingo en local

Open octo-topi opened this issue 2 years ago • 8 comments

:unicorn: Problème

L'image utilisée pour instancier la BDD locale n'est pas celle de Scalingo. Des écarts de comportement peuvent apparaître.

:robot: Solution

Utiliser l'image Scalingo https://hub.docker.com/r/scalingo/postgresql/tags

:rainbow: Remarques

Elle plus lourde (700Mo) que la version alpine (70Mo), mais n'est téléchargée qu'une seule fois en local. On garde la version alpine dans la CI.

:100: Pour tester

Exécuter les tests en local Se connecter à la base de données avec psql postgres://postgresql:secret@localhost:5432/pix

octo-topi avatar Jul 22 '22 17:07 octo-topi

I'm deploying this PR to these urls:

  • App (.fr): https://app-pr4696.review.pix.fr
  • App (.org): https://app-pr4696.review.pix.org
  • Orga: https://orga-pr4696.review.pix.fr
  • Certif: https://certif-pr4696.review.pix.fr
  • Admin: https://admin-pr4696.review.pix.fr
  • API: https://api-pr4696.review.pix.fr/api/

Please check it out!

pix-service avatar Jul 22 '22 17:07 pix-service

Il me semble qu'il manque des modifications pour le PG utilisé par CircleCI.

VincentHardouin avatar Jul 25 '22 09:07 VincentHardouin

Il faudra bien communiquer sur les changement de credentials (.env)

aceol avatar Jul 25 '22 09:07 aceol

Il me semble qu'il manque des modifications pour le PG utilisé par CircleCI.

C'est nomal, voir la section "Remarques" de la PR sur la taille de l'image

octo-topi avatar Jul 25 '22 09:07 octo-topi

Je trouve l'intérêt limité ou je passe à côté de quelques choses, mais si en plus on ne l'utilise pas dans la CI, je comprends encore moins.

Je ne trouve pas de boilerplate Scalingo qui utilise leur image de base de données (ex: https://github.com/Scalingo/scalingo-wordpress/blob/master/docker-compose.yml#L27=)

VincentHardouin avatar Jul 25 '22 09:07 VincentHardouin

Je trouve l'intérêt limité ou je passe à côté de quelques choses, mais si en plus on ne l'utilise pas dans la CI, je comprends encore moins.

Je ne trouve pas de boilerplate Scalingo qui utilise leur image de base de données (ex: https://github.com/Scalingo/scalingo-wordpress/blob/master/docker-compose.yml#L27=)

Cette PR est une question ouverte, il n'y a peut-être pas d'intérêt. Est-ce que CircleCI cache les images ? Si oui, ça règle le problème.

octo-topi avatar Jul 25 '22 09:07 octo-topi

Après avoir regardé l'image docker de Scalingo, j'ai l'impression qu'ils rajoutent un paquet de trucs inutiles pour nos usages sur l'image de base :

  • outils de diagnostic procps sudo wget curl jq
  • compliation/gestion de packages python-pip make g++ protobuf-c-compiler ruby psycopg2-binary
  • gestion de région géographiques dans Postgres avec postgis
  • gestion des backups de Postgres pgbackrest

Mon avis est qu'il serait mieux d'utiliser l'image de base de Postgres, et de partir du principe que si le fonctionnement de Postgres est ok avec l'image de base, on doit s'attendre à ce que l'image utilisée par Scalingo soit aussi fonctionnelle. Je ne pense pas que Scalingo casserait des fonctionnalités de base de Postgres. Mon deuxième argument serait de dire que si nous utilisons des fonctionnalités qui ne sont pas disponibles de base, plus on va se lier aux spécificités de Scalingo, plus on court le risque de se retrouver bloqués si on doit en sortir.

mickaelalibert avatar Jul 25 '22 16:07 mickaelalibert

Merci d'avoir enquêté @mickaelalibert. C'est exactement pour ton deuxième point que je ne suis pas pour.

VincentHardouin avatar Jul 25 '22 16:07 VincentHardouin

Merci d'avoir enquêté @mickaelalibert. C'est exactement pour ton deuxième point que je ne suis pas pour.

Je documente ce choix dans un ADR et clos cette PR et celle de redis #4701

octo-topi avatar Aug 24 '22 15:08 octo-topi