Internal Server Error Ă  l'installation d'une app dans Docker

Bonjour,
Premier post, alors je me présente un peu : Je développe une app anglophone en local avec la stack docker de Frappe (v15, devcontainer), et j’ai aussi une stack prod que je build à chaque fois (grrrr) pour vérif de la qualité.

Je découvre Dokos, dont j’ai installé la stack (prod) en local.
Dokos est plus rapide, et surtout, en lisant la doc (bravo pour la qualité ! Rien à voir avec celle de Frappe qui est anémique et restée en v14), il semblerait que l’on peut installer des apps customs dans votre stack prod sans build.

Du coup, pour voir, j’ai tenté d’installer l’app builder dans mon Dokos :

bench get-app https://github.com/frappe/builder/ --resolve-deps
bench --site frontend install-app builder

Et ça n’est pas passé :

  • backend: ModuleNotFoundError: No module named 'builder'
  • frontend: 500 (Internal Server Error)

Bon j’avoue, j’ai d’abord tenté de l’installer avec docker-compose, pas eu d’erreur, mais rien d’installé dans apps/
Puis je l’ai installé de l’intérieur de backend, c’est bien installé :

bench --site frontend list-apps

frappe   4.49.0    UNVERSIONED
payments 2.14.2    UNVERSIONED
erpnext  4.44.1    UNVERSIONED
hrms     2.47.0    UNVERSIONED
webshop  1.24.0    UNVERSIONED
builder  2.0.0-dev develop

et c’est dans apps.json:

...
"erpnext": {
        "is_repo": true,
        "resolution": {
            "commit_hash": "edeb88d3772c1f901ce51981040d0e41f6db5bef",
            "branch": "v4.44.1"
        },
        "required": [],
        "idx": 5,
        "version": "4.44.1"
    },
    "builder": {
        "is_repo": true,
        "resolution": {
            "commit_hash": "437d09c7a0057ec69ec9920814545ca9db77f882",
            "branch": "develop"
        },
        "required": [],
        "idx": 6,
        "version": "2.0.0-dev"
    }

mais ça me lance du 500 à la figure.

J’ai un repo privé pour pousser mon app pour la suite, ça fonctionne bien quand je build la stack de prod.

Quel est donc le bon moyen pour installer une app dans la stack Dokos ?
Merci !

2 Likes

Bonjour @pmz, bienvenue sur le forum !

Je crois bien que non, en tout cas les applications et l’environnement virtuel Python sont stockés dans l’image Docker immuable si je me souviens bien. Donc il va falloir passer par un build.

Ceci Ă©tant dit, il est probablement possible de repartir de l’image Docker « officielle Â» de Dokos pour accĂ©lĂ©rer le build, quand j’y pense :

docker build -t mon-image-custom -<<EOF
FROM registry.gitlab.com/dokos/dokos
RUN bench get-app https://github.com/frappe/builder --branch master
EOF

docker run --rm -it mon-image-custom /bin/bash -c 'ls apps'
# builder erpnext frappe hrms payments webshop

Concernant l’erreur :

La nouvelle application n’est pas installée dans l’environnement virtuel Python de manière permanente, car l’image est immuable, donc les conteneurs créés à partir de celle-ci ne pourront pas bénéficier des changements opérés, je crois bien.


Merci beaucoup !!


Corentin

1 Like

Ouf ! Réponse à 18h23, vous êtes dédiés !
Merci beaucoup @corentin pour cette réponse détaillée, j’apprécie vraiment.

Super votre solution pour build avec Δοκός (qui veut dire poutre) par la suite.

2 Likes