Thanks for your answer. the bench command is available within multiple containers.
I think that maybe the backend container could be the right one?
Update:
I tried to install it within the backend container:
frappe@16afb00b1c87:~/frappe-bench$ bench get-app https://github.com/libracore/erpnextswiss.git
Getting erpnextswiss
$ git clone https://github.com/libracore/erpnextswiss.git --origin upstream
Cloning into 'erpnextswiss'...
remote: Enumerating objects: 8443, done.
remote: Counting objects: 100% (2722/2722), done.
remote: Compressing objects: 100% (365/365), done.
remote: Total 8443 (delta 2423), reused 2593 (delta 2355), pack-reused 5721
Receiving objects: 100% (8443/8443), 5.38 MiB | 1.75 MiB/s, done.
Resolving deltas: 100% (6438/6438), done.
Ignoring dependencies of https://github.com/libracore/erpnextswiss.git. To install dependencies use --resolve-deps
Installing erpnextswiss
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/frappe/frappe-bench/apps/erpnextswiss
$ bench build --app erpnextswiss
✔ Application Assets Linked
yarn run v1.22.19
$ node esbuild --production --apps erpnextswiss --run-build-command
File Size
DONE Total Build Time: 121.406ms
Done in 0.71s.
WARN: restart failed: Couldn't find supervisorctl in PATH
frappe@16afb00b1c87:~/frappe-bench$
And then:
frappe@16afb00b1c87:~/frappe-bench$ bench install-app erpnextswiss
Installing erpnextswiss...
An error occurred while installing erpnextswiss: Module import failed for ERPNextSwiss Settings, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.erpnextswiss_settings'
Traceback (most recent call last):
File "apps/frappe/frappe/modules/utils.py", line 241, in load_doctype_module
doctype_python_modules[key] = frappe.get_module(module_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/__init__.py", line 1409, in get_module
return importlib.import_module(modulename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'frappe.core.doctype.erpnextswiss_settings'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "apps/frappe/frappe/commands/site.py", line 462, in install_app
_install_app(app, verbose=context.verbose, force=force)
File "apps/frappe/frappe/installer.py", line 306, in install_app
frappe.get_attr(after_install)()
File "apps/erpnextswiss/erpnextswiss/setup/install.py", line 7, in after_install
install_basic_docs()
File "apps/erpnextswiss/erpnextswiss/setup/install.py", line 23, in install_basic_docs
doc = frappe.get_doc("ERPNextSwiss Settings", "ERPNextSwiss Settings")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/__init__.py", line 1266, in get_doc
doc = frappe.model.document.get_doc(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 80, in get_doc
controller = get_controller(doctype)
^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/base_document.py", line 69, in get_controller
site_controllers[doctype] = import_controller(doctype)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/base_document.py", line 94, in import_controller
module = load_doctype_module(doctype, module_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/modules/utils.py", line 245, in load_doctype_module
raise ImportError(msg) from e
ImportError: Module import failed for ERPNextSwiss Settings, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.erpnextswiss_settings'
frappe@16afb00b1c87:~/frappe-bench$
Result:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/gunicorn/workers/gthread.py", line 282, in handle
keepalive = self.handle_request(req, conn)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/gunicorn/workers/gthread.py", line 334, in handle_request
respiter = self.wsgi(environ, resp.start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 74, in application
app(environ, start_response),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/werkzeug/wrappers/request.py", line 189, in application
resp = f(*args[:-2] + (request,))
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 128, in application
response = handle_exception(e)
^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 389, in handle_exception
response = get_response("message", http_status_code=http_status_code)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/serve.py", line 26, in get_response
response = ErrorPage(exception=e).render()
^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/error_page.py", line 7, in __init__
super().__init__(path=path, http_status_code=http_status_code)
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py", line 45, in __init__
self.set_template_path()
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py", line 54, in set_template_path
app_path = frappe.get_app_path(app)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1438, in get_app_path
return get_pymodule_path(app_name, *joins)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1468, in get_pymodule_path
return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1409, in get_module
return importlib.import_module(modulename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss