I am experimenting with docker locally but I still feel it is flaky. I will try Kubernetes. I think MariaDb is only challenge with respect to container implementation. Maybe taking it out will make it more manageable.
Docker itself works wonderfully well on localhost, but when you go for orchestration, it’s a bit tricky and the documentation seems to be outdated. One of the key requirements (as per docs) has been deprecated and like I said ,I hope @revant_one can find some time to update the same.
Kudos to @revant_one because this is the first time I tried docker and it works so well for me.
You need to understand how Frappe/ERPNext containers work in case debugging is required.
Container can take any db host that is mentioned in common_site_config.json or site_config.json.
The frappe_docker/docker-compose.yml for docker-compose up -d adds all the containers in single file for easy of use. It is not mandatory to use that docker-compose.yml for advance cases.
For AWS Aurora (MySQL) its the same case, check this gist, I execute sed command to replace erpnext code as a part of job that does the site creation.
After site creation, all seems to work with existing code on AWS Aurora.
I’ll update docs soon. Currently it mentions the nfs-server helm chart which is deprecated.
Instead you need to use
Manually deploy it, Helm Chart will redirect you back to the deprecated chart.
But with the Azure managed db, there is another issue that pops up.
Azure requires the username to be in the format username@hostname in the connection string. While frappe only uses the username part to create default databases, and for further communications. I think the corrections need to be done in database.py and Azure DB for mariadb can be used seamlessly.
I’m interested in HA as well, including multiple front end servers.
Getting DB’s to work when not on the local machine does take some manual configuration, you have to be careful with “GRANTS”. We have that all worked out, but had a server crash through a mistake recently, would like to have a clustered front end (“multiple runtimes”) so that doesn’t happen.