Issue Installing Apps in Docker Container

I am running ERPNext in a docker container and am having a strange problem with installing additional apps. Sometimes they work, sometimes they don’t (I have remove my docker container and recreated it a few times). For example, if I install Raven, right now I am getting the following output but in my previous container, it installed no problem:

frappe@2f225d11bdab:~$ cd frappe-bench
frappe@2f225d11bdab:~/frappe-bench$ bench get-app https://github.com/The-Commit-Company/Raven.git
Getting Raven
$ git clone https://github.com/The-Commit-Company/Raven.git  --depth 1 --origin upstream
Cloning into 'Raven'...
remote: Enumerating objects: 668, done.
remote: Counting objects: 100% (668/668), done.
remote: Compressing objects: 100% (571/571), done.
remote: Total 668 (delta 96), reused 364 (delta 48), pack-reused 0
Receiving objects: 100% (668/668), 5.57 MiB | 8.10 MiB/s, done.
Resolving deltas: 100% (96/96), done.
Ignoring dependencies of https://github.com/The-Commit-Company/Raven.git. To install dependencies use --resolve-deps
Installing raven
$ /work/frappe/env/bin/python -m pip install --quiet --upgrade -e /work/frappe/apps/raven
$ yarn install --check-files
yarn install v1.22.21
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
$ yarn install-web && yarn install-mobile && yarn install-desk
yarn run v1.22.21
$ cd raven-app && yarn install
[1/4] Resolving packages...
[2/4] Fetching packages...
warning Pattern ["strip-ansi@^6.0.1"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-strip-ansi-cjs-6.0.1-9e26c63d30f53443e9489495b2105d37b67a85d9-integrity/node_modules/strip-ansi-cjs" as pattern ["strip-ansi-cjs@npm:strip-ansi@^6.0.1"]. This could result in non-deterministic behavior, skipping.
warning Pattern ["string-width@^4.1.0"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-string-width-cjs-4.2.3-269c7117d27b05ad2e536830a8ec895ef9c6d010-integrity/node_modules/string-width-cjs" as pattern ["string-width-cjs@npm:string-width@^4.2.0"]. This could result in non-deterministic behavior, skipping.
warning Pattern ["strip-ansi@^6.0.0"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-strip-ansi-cjs-6.0.1-9e26c63d30f53443e9489495b2105d37b67a85d9-integrity/node_modules/strip-ansi-cjs" as pattern ["strip-ansi-cjs@npm:strip-ansi@^6.0.1"]. This could result in non-deterministic behavior, skipping.
[3/4] Linking dependencies...
warning " > @tiptap/extension-code-block-lowlight@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-code-block-lowlight@2.2.2" has unmet peer dependency "@tiptap/extension-code-block@^2.0.0".
warning " > @tiptap/extension-highlight@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-link@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-mention@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-placeholder@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-typography@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-underline@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/react@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "@tiptap/react > @tiptap/extension-bubble-menu@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "@tiptap/react > @tiptap/extension-floating-menu@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/suggestion@2.2.2" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > autoprefixer@10.4.17" has unmet peer dependency "postcss@^8.1.0".
warning " > vite-plugin-pwa@0.17.5" has unmet peer dependency "workbox-build@^7.0.0".
warning " > vite-plugin-pwa@0.17.5" has unmet peer dependency "workbox-window@^7.0.0".
[4/4] Building fresh packages...
Done in 18.79s.
yarn run v1.22.21
$ cd mobile && yarn install
[1/4] Resolving packages...
[2/4] Fetching packages...
warning Pattern ["strip-ansi@^6.0.1"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-strip-ansi-cjs-6.0.1-9e26c63d30f53443e9489495b2105d37b67a85d9-integrity/node_modules/strip-ansi-cjs" as pattern ["strip-ansi-cjs@npm:strip-ansi@^6.0.1"]. This could result in non-deterministic behavior, skipping.
warning Pattern ["string-width@^4.1.0"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-string-width-cjs-4.2.3-269c7117d27b05ad2e536830a8ec895ef9c6d010-integrity/node_modules/string-width-cjs" as pattern ["string-width-cjs@npm:string-width@^4.2.0"]. This could result in non-deterministic behavior, skipping.
warning Pattern ["strip-ansi@^6.0.0"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-strip-ansi-cjs-6.0.1-9e26c63d30f53443e9489495b2105d37b67a85d9-integrity/node_modules/strip-ansi-cjs" as pattern ["strip-ansi-cjs@npm:strip-ansi@^6.0.1"]. This could result in non-deterministic behavior, skipping.
warning Pattern ["wrap-ansi@^7.0.0"] is trying to unpack in the same destination "/home/frappe/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" as pattern ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"]. This could result in non-deterministic behavior, skipping.
[3/4] Linking dependencies...
warning " > @tiptap/extension-code-block-lowlight@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-code-block-lowlight@2.2.4" has unmet peer dependency "@tiptap/extension-code-block@^2.0.0".
warning " > @tiptap/extension-highlight@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-link@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-mention@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-placeholder@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-typography@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-underline@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/react@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "@tiptap/react > @tiptap/extension-bubble-menu@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "@tiptap/react > @tiptap/extension-floating-menu@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/suggestion@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "react-router > mini-create-react-context@0.4.1" has incorrect peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0".
warning " > vite-plugin-pwa@0.19.0" has unmet peer dependency "workbox-build@^7.0.0".
warning " > vite-plugin-pwa@0.19.0" has unmet peer dependency "workbox-window@^7.0.0".
[4/4] Building fresh packages...
Done in 8.29s.
yarn run v1.22.21
$ cd raven && yarn install
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > @tiptap/extension-highlight@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-link@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-mention@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-placeholder@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/extension-underline@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/react@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "@tiptap/react > @tiptap/extension-bubble-menu@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning "@tiptap/react > @tiptap/extension-floating-menu@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
warning " > @tiptap/suggestion@2.2.4" has unmet peer dependency "@tiptap/core@^2.0.0".
[4/4] Building fresh packages...
Done in 0.55s.
Done in 28.17s.
$ bench build --app raven
✔ Application Assets Linked


yarn run v1.22.21
$ node esbuild --production --apps raven --run-build-command
File                                                        Size

raven/dist/js/
└─ raven.bundle.TMFDDUX6.js                                 9.26 Kb

raven/dist/
└─ raven_chat.bundle.EAUIIM6P.js                            496.94 Kb

raven/dist/css/
└─ raven.bundle.SXD53T5B.css                                6.88 Kb

raven/dist/css-rtl/
└─ raven.bundle.BA4ZQHSJ.css                                6.89 Kb

 DONE  Total Build Time: 477.12ms


Running build command for raven
$ yarn build-web && yarn build-mobile
$ cd raven-app && yarn build
$ vite build --base=/assets/raven/raven/ && yarn copy-html-entry
vite v4.5.2 building for production...
✓ 833 modules transformed.
../raven/public/raven/registerSW.js                              0.17 kB
../raven/public/raven/manifest.webmanifest                       0.18 kB
../raven/public/raven/index.html                                 1.26 kB │ gzip:   0.55 kB
../raven/public/raven/assets/CalSans-SemiBold-d3e38c94.woff2    40.93 kB
../raven/public/raven/assets/CalSans-SemiBold-c8c75bb7.woff     52.50 kB
../raven/public/raven/assets/CalSans-SemiBold-ed3461b0.ttf     148.96 kB
../raven/public/raven/assets/EmojiPicker-5b1d2d7e.css            0.31 kB │ gzip:   0.17 kB
../raven/public/raven/assets/Tiptap-62bac956.css                 1.83 kB │ gzip:   0.69 kB
../raven/public/raven/assets/SearchButton-5a47c752.css           3.51 kB │ gzip:   0.96 kB
../raven/public/raven/assets/index-65f714f8.css                656.81 kB │ gzip:  71.87 kB
../raven/public/raven/assets/index-6578c798.js                   0.79 kB │ gzip:   0.51 kB
../raven/public/raven/assets/AuthContainer-2ba2b75b.js           0.96 kB │ gzip:   0.53 kB
../raven/public/raven/assets/SavedMessages-a7eaed0c.js           1.55 kB │ gzip:   0.90 kB
../raven/public/raven/assets/inset-bd65706e.js                   1.76 kB │ gzip:   0.76 kB
../raven/public/raven/assets/LoginWithEmail-c9165c02.js          2.58 kB │ gzip:   1.27 kB
../raven/public/raven/assets/UsersTable-c19b7e0d.js              2.73 kB │ gzip:   1.23 kB
../raven/public/raven/assets/AddRavenUsersContent-12139570.js    3.34 kB │ gzip:   1.62 kB
../raven/public/raven/assets/Login-f1760cf1.js                   3.94 kB │ gzip:   1.64 kB
../raven/public/raven/assets/TableLoader-c9c2a85b.js             4.94 kB │ gzip:   1.98 kB
../raven/public/raven/assets/index-eb8a6238.js                   5.96 kB │ gzip:   1.95 kB
../raven/public/raven/assets/AddRavenUsersPage-ad83a53b.js       6.24 kB │ gzip:   2.57 kB
../raven/public/raven/assets/ViewFilesContent-983a2c33.js        6.70 kB │ gzip:   2.40 kB
../raven/public/raven/assets/index-b95fd92d.js                  25.32 kB │ gzip:   8.66 kB
../raven/public/raven/assets/AddMembersDropdown-70872016.js     32.74 kB │ gzip:  11.05 kB
../raven/public/raven/assets/EmojiPicker-f635cc5b.js            39.14 kB │ gzip:  13.77 kB
../raven/public/raven/assets/Tiptap-9745671c.js                 52.16 kB │ gzip:  17.30 kB
../raven/public/raven/assets/ChatSpace-1a52fb56.js             112.96 kB │ gzip:  35.75 kB
../raven/public/raven/assets/index-a554f1f1.js                 537.00 kB │ gzip: 171.61 kB
../raven/public/raven/assets/SearchButton-10642a30.js          667.42 kB │ gzip: 209.79 kB
../raven/public/raven/assets/MomentConverter-9925356b.js       847.76 kB │ gzip:  60.31 kB

(!) Some chunks are larger than 500 kBs after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.

PWA v0.17.5
mode      generateSW
precache  27 entries (2950.04 KiB)
files generated
  ../raven/public/raven/sw.js
  ../raven/public/raven/workbox-3e911b1d.js
✓ built in 10.47s
$ cp ../raven/public/raven/index.html ../raven/www/raven.html
$ cd mobile && yarn build
$ vite build --base=/assets/raven/raven_mobile/ && yarn copy-html-entry
vite v4.5.2 building for production...
✓ 995 modules transformed.
../raven/public/raven_mobile/registerSW.js                               0.19 kB
../raven/public/raven_mobile/manifest.webmanifest                        0.37 kB
../raven/public/raven_mobile/assets/male-avatar-447a513e.svg             3.17 kB │ gzip:   1.50 kB
../raven/public/raven_mobile/index.html                                 11.84 kB │ gzip:   1.53 kB
../raven/public/raven_mobile/assets/raven_logo-3d802ce4.png             27.25 kB
../raven/public/raven_mobile/assets/CalSans-SemiBold-d3e38c94.woff2     40.93 kB
../raven/public/raven_mobile/assets/CalSans-SemiBold-c8c75bb7.woff      52.50 kB
../raven/public/raven_mobile/assets/CalSans-SemiBold-ed3461b0.ttf      148.96 kB
../raven/public/raven_mobile/assets/index-7cc54f2a.css                  43.74 kB │ gzip:   9.12 kB
../raven/public/raven_mobile/assets/swipe-back-354c0b65.js               0.68 kB │ gzip:   0.47 kB
../raven/public/raven_mobile/assets/status-tap-e9d26d2e.js               0.71 kB │ gzip:   0.46 kB
../raven/public/raven_mobile/assets/web-1b4988be.js                      0.99 kB │ gzip:   0.46 kB
../raven/public/raven_mobile/assets/focus-visible-9c13edeb.js            0.99 kB │ gzip:   0.51 kB
../raven/public/raven_mobile/assets/md.transition-57a89a82.js            1.03 kB │ gzip:   0.57 kB
../raven/public/raven_mobile/assets/web-c3990f8c.js                      1.31 kB │ gzip:   0.59 kB
../raven/public/raven_mobile/assets/index9-f6517ea3.js                   1.87 kB │ gzip:   0.91 kB
../raven/public/raven_mobile/assets/input-shims-e5c92289.js              5.12 kB │ gzip:   2.20 kB
../raven/public/raven_mobile/assets/ios.transition-3f5bcc76.js          10.34 kB │ gzip:   3.03 kB
../raven/public/raven_mobile/assets/index-9b4c6e28.js                2,000.52 kB │ gzip: 552.32 kB

(!) Some chunks are larger than 500 kBs after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.

PWA v0.19.0
mode      generateSW
precache  63 entries (4683.63 KiB)
files generated
  ../raven/public/raven_mobile/sw.js
  ../raven/public/raven_mobile/workbox-f407626e.js
✓ built in 9.34s
$ cp ../raven/public/raven_mobile/index.html ../raven/www/raven_mobile.html
Done in 23.13s.
$ supervisorctl restart frappe-web:
frappe-web:frappe-frappe-web: stopped
frappe-web:frappe-frappe-web: started
$ supervisorctl restart frappe-workers:
frappe-workers:frappe-frappe-schedule: stopped
frappe-workers:frappe-frappe-short-worker-0: stopped
frappe-workers:frappe-frappe-long-worker-0: stopped
frappe-workers:frappe-frappe-schedule: started
frappe-workers:frappe-frappe-short-worker-0: started
frappe-workers:frappe-frappe-long-worker-0: started
frappe@2f225d11bdab:~/frappe-bench$ bench --site site.local install-app raven

Installing raven...
An error occurred while installing raven: Module import failed for Raven Channel, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.raven_channel'
Traceback with variables (most recent call last):
  File "apps/frappe/frappe/commands/site.py", line 446, in install_app
    _install_app(app, verbose=context.verbose, force=force)
      context = {'sites': ['site.local'], 'force': False, 'verbose': False, 'profile': False}
      apps = ('raven',)
      force = False
      _install_app = <function install_app at 0x7f34d4e3cca0>
      filelock = <function filelock at 0x7f34d4e3c940>
      exit_code = 0
      site = 'site.local'
      app = 'raven'
      err = ImportError("Module import failed for Raven Channel, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.raven_channel'")
  File "apps/frappe/frappe/installer.py", line 309, in install_app
    frappe.get_attr(after_install)()
      name = 'raven'
      verbose = False
      set_as_patched = True
      force = False
      sync_jobs = <function sync_jobs at 0x7f34d3f36320>
      sync_for = <function sync_for at 0x7f34d3f36d40>
      sync_customizations = <function sync_customizations at 0x7f34d4f32050>
      sync_fixtures = <function sync_fixtures at 0x7f34d3f36ef0>
      app_hooks = {'additional_timeline_content': {'*': ['raven.api.raven_message.get_timeline_message_content']}, 'after_install': ['raven.install.after_install'], 'after_uninstall': ['raven.uninstall.after_uninstall'], 'app_description': ['Messaging Application'], 'app_email': ['support@thecommit.company'], 'app_include_css': ['raven.bundle.css'], 'app_include_js': ['raven.bundle.js'], 'app_license': ['AGPLv3'], 'app_name': ['raven'], 'app_publisher': ['The Commit Company'], 'app_title': ['Raven'], 'app_version': ['1.4.4'], 'doc_events': {'User': {'after_insert': ['raven.raven.doctype.raven_user.raven_user.add_user_to_raven'], 'on_update': ['raven.raven.doctype.raven_user.raven_user.add_user_to_raven']}}, 'export_python_type_annotations': [True], 'extend_bootinfo': ['raven.boot.boot_session'], 'has_permission': {'Raven Channel': ['raven.permissions.channel_has_permission'], 'Raven Channel Member': ['raven.permissions.channel_member_has_permission'], 'Raven Message': ['raven.permissions.message_has_per...
      installed_apps = ['frappe', 'erpnext', 'hrms']
      after_install = 'raven.install.after_install'
  File "apps/raven/raven/install.py", line 4, in after_install
    create_general_channel()
  File "apps/raven/raven/install.py", line 9, in create_general_channel
    channel = frappe.new_doc("Raven Channel")
  File "apps/frappe/frappe/__init__.py", line 1141, in new_doc
    new_doc = get_new_doc(doctype, parent_doc, parentfield, as_dict=as_dict)
      doctype = 'Raven Channel'
      parent_doc = None
      parentfield = None
      as_dict = False
      kwargs = {}
      get_new_doc = <function get_new_doc at 0x7f34d1cf1b40>
  File "apps/frappe/frappe/model/create_new.py", line 22, in get_new_doc
    frappe.local.new_doc_templates[doctype] = make_new_doc(doctype)
      doctype = 'Raven Channel'
      parent_doc = None
      parentfield = None
      as_dict = False
  File "apps/frappe/frappe/model/create_new.py", line 35, in make_new_doc
    doc = frappe.get_doc({"doctype": doctype, "__islocal": 1, "owner": frappe.session.user, "docstatus": 0})
      doctype = 'Raven Channel'
  File "apps/frappe/frappe/__init__.py", line 1284, in get_doc
    doc = frappe.model.document.get_doc(*args, **kwargs)
      args = ({'doctype': 'Raven Channel', '__islocal': 1, 'owner': 'Administrator', 'docstatus': 0},)
      kwargs = {}
      frappe = <module 'frappe' from 'apps/frappe/frappe/__init__.py'>
  File "apps/frappe/frappe/model/document.py", line 83, in get_doc
    controller = get_controller(doctype)
      args = ({'doctype': 'Raven Channel', '__islocal': 1, 'owner': 'Administrator', 'docstatus': 0},)
      kwargs = {'doctype': 'Raven Channel', '__islocal': 1, 'owner': 'Administrator', 'docstatus': 0}
      doctype = 'Raven Channel'
  File "apps/frappe/frappe/model/base_document.py", line 70, in get_controller
    site_controllers[doctype] = import_controller(doctype)
      doctype = 'Raven Channel'
      site_controllers = {'Module Def': <class 'frappe.core.doctype.module_def.module_def.ModuleDef'>, 'DocField': <class 'frappe.core.doctype.docfield.docfield.DocField'>, 'DocPerm': <class 'frappe.core.doctype.docperm.docperm.DocPerm'>, 'DocType Link': <class 'frappe.core.doctype.doctype_link.doctype_link.DocTypeLink'>, 'System Settings': <class 'frappe.core.doctype.system_settings.system_settings.SystemSettings'>, 'Notification Settings': <class 'frappe.desk.doctype.notification_settings.notification_settings.NotificationSettings'>, 'DefaultValue': <class 'frappe.core.doctype.defaultvalue.defaultvalue.DefaultValue'>, 'Payment Reconciliation': <class 'erpnext.accounts.doctype.payment_reconciliation.payment_reconciliation.PaymentReconciliation'>, 'Customize Form': <class 'frappe.custom.doctype.customize_form.customize_form.CustomizeForm'>, 'DocType Action': <class 'frappe.core.doctype.doctype_action.doctype_action.DocTypeAction'>, 'DocType State': <class 'frappe.core.doctype.doctype_state.doctype_state.DocTyp...
  File "apps/frappe/frappe/model/base_document.py", line 95, in import_controller
    module = load_doctype_module(doctype, module_name)
      doctype = 'Raven Channel'
      Document = <class 'frappe.model.document.Document'>
      NestedSet = <class 'frappe.utils.nestedset.NestedSet'>
      module_name = 'Core'
      doctype_info = None
      module_path = None
      class_overrides = {'Address': ['erpnext.accounts.custom.address.ERPNextAddress'], 'Employee': ['hrms.overrides.employee_master.EmployeeMaster'], 'Timesheet': ['hrms.overrides.employee_timesheet.EmployeeTimesheet'], 'Payment Entry': ['hrms.overrides.employee_payment_entry.EmployeePaymentEntry'], 'Project': ['hrms.overrides.employee_project.EmployeeProject']}
  File "apps/frappe/frappe/modules/utils.py", line 241, in load_doctype_module
    raise ImportError(msg) from e
      doctype = 'Raven Channel'
      module = 'Core'
      prefix = ''
      suffix = ''
      app = 'frappe'
      key = ********
      module_name = 'frappe.core.doctype.raven_channel.raven_channel'
      msg = "Module import failed for Raven Channel, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.raven_channel'"
builtins.ImportError: Module import failed for Raven Channel, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.raven_channel'

The same thing happens with the wiki app. Is there a step I am missing?

Build custom image with additional apps

I am building a custom docker solution.

Officially, you’re supposed to build a customer docker image when you push a docker-based deployment which includes custom apps. The fact that you’re running bench commands manually inside the images seems to betray that you’re trying to install an app into an existing image. The main problem with this (among others) is that the apps folder in the image isn’t persistent, and will not survive image updates, besides the fact that it’s actually it’s not made to be possible at all.

That said, Frappe does maintain a frappe/bench image which is officially designed for local development only. I managed to get this image working with a docker-compose.yml in a way which does allow the installation of apps similar to your attempts above, and without needing to build a custom image.

You can check out my work here: GitHub - Avunu/frappe-bench-docker: Deploy persistent docker-powered frappe sites without building custom images.

YMMV

4 Likes

This is awesome!

suggestions:

place sample cupsd.conf and printers.conf or it will create directories.

Optionally, refer the installer.py and apps.json from frappe_docker/development and use it in configurator.

1 Like

Thanks for the commendation and good suggestions @revant_one!

The original use-case here was running frappe and erpnext on-premises using the docker engine in a Synology NAS, and so far it’s worked fairly well.

I haven’t totally figured out the cups thing yet to my satisfaction, so that deserves another look and some more work to be sure, including a more streamlined setup process.

I wanted to see what could be done with the bench container image alone with docker-compose, but I’ll take another look at installer.py and apps.json at some point and see how that could enhance this :+1:

I’m sure my docker configuration isn’t ideal but it’s working at the moment.

I have it so that the entire frappe-bench directory is outside of the image - mounted volume. So I can freely stop and start the image without a problem.