Which brings to my main question hoping to get some direction
Option1 Customize docker ERPnext, mostly doctype’s via UI, with custom checked. Which I’d assume same as dev mode off and all customization saved to db.
Option2 install to VM directly, dev mode on or customize file directory directly
Use case: for our business internal use only, small team <10 people, lots integration with 3rd party app via REST API
Q2 Which route would be better suited for us?
Q3 Build custom docker image VS direct to VM, which would be better deployement for us?
That is mostly true, yes. Technically not everything directly beneath the apps folder is a Frappe Module.
Looking at ERPNext App for example. There are folders named “change_log”, “commands”, “config”, “domains”, and more. These are Python modules. But not Frappe Modules.
DocTypes are a combination of SQL table + web page design + various metadata. Not only do you define the SQL schema, but also the layout of the web page.
I’ve never used frappe_docker, so I cannot speak to its pros and cons.
My personal opinion:
I really love Docker, and I’ve used it for many, many things.
But I do not like Docker + ERPNext. It adds complexity to a product that’s already quite complex. And appears to create just as many problems as it solves.
If I worked at a much larger company, or if I was trying to be an ERPNext service provider? Then perhaps I’d have another opinion.
However, others on this forum probably feel very differently than I do. Many people are using Docker here.
Shell terminal for bench commands, and also git commands. Also for troubleshooting remote virtual machines.
Web browser for basic DocType work, testing, troubleshooting, etc.
VSCode for editing Python, JS code, config data.
DBeaver for SQL query writing, testing, troubleshooting, etc. Occasionally for altering data (not recommended, and not always safe, but sometimes it’s the path of least effort for me)
For working with the Redis databases, Another Redis Desktop Manager. Useful for troubleshooting. Sometimes to edit data during testing.
To examine what’s going on with Queues and Workers, I’m using RQ Monitor.