Skip to content
Snippets Groups Projects

Delete pad after delay

Merged Roma requested to merge delete-pad-after-delay into master
All threads resolved!

Hello! J'aimerais bien une relecture, surtout de la part des admins actuels. Je doute surtout du fait que ma nouvelle version du docker-compose ne casse pas la prod (conservation des noms de volumes etc). J'ai tout vérifié mais on n'est jamais trop sûrs ;)

Au passage, j'ai aussi:

  • accéléré la compilation de l'image en fixant les pb de chown
  • bougé la variable d'environnement de Abiword dans le dockerfile, puisque c'est le dockerfile qui contrôle le path (actuellement c'est le fait qu'on utilise debian/apt qui détermine l'endroit où sera installé abiword). Mais ça reste une variable d'environnement, qui peut être overridée dans le docker-compose si nécessaire.
  • normalisé les noms là où c'était possible (j'espère ne pas avoir touché aux noms réels des volumes)

@qduchemi je t'assigne de façon totalement arbitraire, hésite pas à refiler le bébé à quelqu'un d'autre, J'EN APPELLE AU DISCERNEMENT DE CHACUN

Edited by Roma

Merge request reports

Approval is optional

Merged by Quentin DucheminQuentin Duchemin 4 years ago (Nov 17, 2020 9:50pm UTC)

Merge details

  • Changes merged into master with 3fc210ca (commits were squashed).
  • Deleted the source branch.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
89 88 - standard_dpad-app
90 89 depends_on:
91 90 - standard_db
91 - standard_delete-pad-after-delay
  • Author Maintainer

    @qduchemi Mauvaise idée, mon container refuse de démarrer (il tourne sur une boucle de requêtage de app avec un timeout et un délai) tant que app a pas démarré. Alors OUI ça marche parce que dans les fait app met tellement de temps à démarrer que dpad a largement le temps. Mais si jamais un jour etherpad était plus rapide ça marcherait plus.

  • Je vois pas le souci, tout ce que fait cette clause c'est de faire démarrer ton conteneur lorsqu'on fait un docker-compose up -d standard_app, ce qui est plutôt bien parce que sinon on doit faire docker-compose up -d standard_app standard_delete-pad-after-delay.

    Et en effet, ton conteneur sera lancé en premier, il failera sur sa première itération, mais ensuite ça le fait, non ?

  • Author Maintainer

    Si on est réaliste sur la durée de boot d'etherpad et qu'on fournit à mon conteneur les paramètres de retry kivonbien, alors ça marche.

    D'un point de vue sémantique, ça me chiffonne, parce que dpad est le client et app est le serveur; et app peut très bien tourner toute seule (alors que dpad fail si app ne tourne pas). Donc en lisant ce docker-compose, on peut ne pas comprendre.

    Cependant, j'entends bien ton argument: c'est une "sécurité" qui permet de lancer automatiquement dpad même si l'utilisateur a demandé de lancer seulement app. Mais j'ai envie de dire que cet utilisateur a bien cherché la merde - ou plutôt, que ça me paraît assez peu irréaliste que, au lieu de taper dc up il ouvre le dc, regarde les noms des conteneurs, et ne décide de lancer que app.

    Ce à quoi tu pourrais me répondre: oui, mais il pourrait retrouver le nom du conteneur en faisant un docker ps, puis il pourrait arrêter toute la prod avec un dc down et remonter uniquement le mauvais conteneur.

    Déjà, non, parce que les noms réels des conteneurs (spécifiés avec container_name sont différents des noms manipulés par docker-compose, donc ça veut dire qu'il va un minimum se casser la tête (en l'occurrence virer le préfixe etherpad_, ok, il va peut-être y arriver).

    Et surtout, est-ce que ce serait si grave? Si quelqu'un oublie de lancer dpad? Pas sûr.

    Ma position (qui est contestable) c'est qu'il vaut mieux écrire quelque chose de lisible plutôt que quelque chose de pas lisible quand les deux marchent.

    Ma position est contestable, et je te demande ton avis, parce que j'oublie cette "sécurité" au cas où quelqu'un oublierait de lancer dpad, mais je considère que c'est pas grave, parce que:

    • je considère qu'il y a peu de chances que ça arrive, ou
    • que ça aura peu de conséquences, ou
    • que quelqu'un se rendra vite compte qu'on a oublié de lancer ce conteneur. Mais peut-être que je sur-estime la team technique sur ces trois points. Qu'en penses-tu?
  • que quelqu'un se rendra vite compte qu'on a oublié de lancer ce conteneur

    Pour le coup, c'est assez peu probable.

    En revanche, je te rejoins sur la sémantique, et je n'y avais pas pensé. L'application ne dépend pas techniquement de dapp, même si son fonctionnement nominal en dépend. Mais c'est mieux dans l'autre sens.

    En fait, ça fait un moment que ça me chiffonne (et c'est de mon fait), mais que les week et standard cohabitent au sein du même fichier Compose, c'est moche. À la base, il me semblait que c'était cohérent, mais ce sont deux services différents.

    Etherpad est donc une exception vis-à-vis de la doc où on ne peut pas lancer un docker-compose up -d sur la prod sans démarrer les deux instances.

    Je viens de me rappeler pourquoi j'ai fait ça : à l'époque il y avait la CI, et elle exigeait un fichier Compose à la racine

    Donc il me semble qu'une solution serait la suivante :

    • Séparer les instances dans deux fichiers séparés (mais très similaires, ce qui n'est pas grave, car on peut supposer que ces fichiers évoluent indépendamment)
    • Rétablir le depends_on de dapp vers app

    C'est moins le bordel, la sémantique est correcte (même si en vrai depends_on c'est bien pourri, genre un docker-compose up -d --force-recreate recrée toutes les dépendances, je trouve que c'est pas du tout attendu...) et un docker-compose up -d standard ne fout pas la merde. Qu'en penses-tu ?

  • Author Maintainer

    Ouais, complètement d'accord.

  • Please register or sign in to reply
  • que quelqu'un se rendra vite compte qu'on a oublié de lancer ce conteneur

    Pour le coup, c'est assez peu probable.

    En revanche, je te rejoins sur la sémantique, et je n'y avais pas pensé. L'application ne dépend pas techniquement de dapp, même si son fonctionnement nominal en dépend. Mais c'est mieux dans l'autre sens.

    En fait, ça fait un moment que ça me chiffonne (et c'est de mon fait), mais que les week et standard cohabitent au sein du même fichier Compose, c'est moche. À la base, il me semblait que c'était cohérent, mais ce sont deux services différents.

    Etherpad est donc une exception vis-à-vis de la doc où on ne peut pas lancer un docker-compose up -d sur la prod sans démarrer les deux instances.

    Je viens de me rappeler pourquoi j'ai fait ça : à l'époque il y avait la CI, et elle exigeait un fichier Compose à la racine

    Donc il me semble qu'une solution serait la suivante :

    • Séparer les instances dans deux fichiers séparés (mais très similaires, ce qui n'est pas grave, car on peut supposer que ces fichiers évoluent indépendamment)
    • Rétablir le depends_on de dapp vers app

    C'est moins le bordel, la sémantique est correcte (même si en vrai depends_on c'est bien pourri, genre un docker-compose up -d --force-recreate recrée toutes les dépendances, je trouve que c'est pas du tout attendu...) et un docker-compose up -d standard ne fout pas la merde. Qu'en penses-tu ?

    Edited by Quentin Duchemin
  • Quentin Duchemin added 2 commits

    added 2 commits

    • a82072db - [Etherpad] Use two Compose files, one for each instance, and fix container internal URLs references
    • 24368f56 - [Etherpad] Change the welcome text to mention we keep a backup of deleted pads

    Compare with previous version

  • added 1 commit

    • 4704ab96 - [Etherpad] Whoops, switched Compose files

    Compare with previous version

  • added 1 commit

    • 987791b5 - [docker_test.sh] Fix checkout path

    Compare with previous version

  • added 1 commit

    • 2560e21f - [docker_test.sh] Remove useless error message

    Compare with previous version

  • added 1 commit

    • a82b8017 - [docker_test.sh] Manage sub-sub-folders

    Compare with previous version

  • added 1 commit

    • 8a076e1c - [docker_test.sh] Repeat after me : 'never code again'

    Compare with previous version

  • added 1 commit

    • db678182 - [Etherpad] Fix comment being included in environment variable

    Compare with previous version

  • added 1 commit

    • bbb2d39e - [Etherpad] Bump script for deletion and remove deleted pads creation from Etherpad

    Compare with previous version

  • added 1 commit

    • 33ad4f3a - [Etherpad] Fix name of dpad for week instance

    Compare with previous version

  • Quentin Duchemin resolved all threads

    resolved all threads

  • mentioned in commit 3fc210ca

  • Please register or sign in to reply
    Loading