ERPNext customizable Base Image v10/v11

Production Ready ERPNext Docker Images

No ERPNext docker solution was ready to use when we started to bring ERPNext to life.
So we decided to build a production ready Docker Image for ERPNext 10.
We pinned all Versions, and developed the docker-compose file to start the whole application in just one command.

The official ERPNext Docker image is not build for production use.
The second best solution from pipech has no options to change the way it’s build.
For an base image it was way too complicated to use, so we built a new base image from scratch.
And most important the production setup of pipech is designed to be used with a public IP address.

In a production state we want to ensure that it is the exact same combination of versions every time.
With our image it’s save to have the same build even if you recreate the image.

If you are in need of custom steps for your specific setup, we split the entrypoint into numbered files.
You can add scripts with whatever step you need in between.
We use this method to load our custom app into a customized docker image specific for our needs.

Our base image is simple to use, just one command and you can run it as a production ready ERPNext.
Oh, and by the way, you don’t have to do anything inside the container itself, just user docker-compose up and you are good to go.
Everything will be configured and setup so you can immediately start working within the ERP.

In the example we provided a docker-compose-dev.yml. With that yml you can run ERPNext in development mode.
Or even easier you can use the make commands to just run it.

If you have any questions just let us know what is unclear to you. I’m sure we can help you out.
When you are using our image and have any improvements we would be happy to integrate this into the base image.
Please consider, that we can not support questions not related to this repo.

Kind regards
Seibert Media Team

6 Likes

OMG!!! Awesome concept!

I have been struggling with the pipech repo for about 2 weeks now and trying to modify it has proved fruitless.

When I get back to the office this weekend I will try this one out for size. Maybe I can better understand your implementation method once I finish reading through it.

I really, Really, REALLY wanted the ability to fix all dependency versions in the build process and if you have that part working then this is going to be amazing.

Thank you for your effort to make ERPNExt even easier to support.

BKM

kudos! this is great!

but I do have a few questions/suggestions…

a. when it comes to pinning versions, I would suggest doing this for your apt packages as well.

b. npm (at least the nodesource .deb) requires the package python-minimal which runs on python2. A fix I’d suggest is installing node and npm from nodesource, and using --force-depends to install it (it will fail otherwise). if you don’t use node-gyp your fine, but if you do, there is a line that I forgot now (I have it in my frappe_docker fork) that makes node-gyp use python3.

c. frappe currently has some issues with python3, I would recommend that you make a separate dockerfile that uses it.

d. does this work with docker swarm/stack?

Again, big kudos for this!

Sorry for the late answer it totally forgot that i wanted to post here.

Thanks for the 3 proposed improvements, we have it in mind and will try to included it in the next version/

For d. We are not using swarm nor stack so i guess it wont work.

1 Like