pix
pix copied to clipboard
[TECH] Utiliser la version de base de données de Scalingo en local
: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
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!
Il me semble qu'il manque des modifications pour le PG utilisé par CircleCI.
Il faudra bien communiquer sur les changement de credentials (.env)
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
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=)
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.
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.
Merci d'avoir enquêté @mickaelalibert. C'est exactement pour ton deuxième point que je ne suis pas pour.
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