What are Benches and Bench Groups?
-
Bench is a collection of apps and sites.
-
Bench Group is a collection of Benches .
Bench
A Bench is a collection of apps and sites. All sites on a Bench share the same configuration, such as the version of apps, or version of dependencies.
Cloud creates Benches from information stored on a Bench Group .
For a more technical explanation of what a Bench is, see the Bench confusion section.
Bench Group
A Bench Group is not only a collection of Benches but it also consists of the template from which these Benches are created.
And so, it holds information such as:
-
Which apps to install.
-
What common site config flags to be set.
-
The version of dependencies to be used.
Private Bench Groups
If you are using a private bench group then all of the above information can be set and updated by you.
When is a Bench created?
A Bench Group by itself does not run your site. For this you have to deploy a Bench . This takes place when you click on Deploy or Update Available on your Bench Group page.
-
Doing so creates a Deploy which builds a Bench:
-
After the Deploy succeeds, a New Bench job, which initializes and runs the Bench , is created:
Once the Bench is running, a new site is created on it, or an existing site is moved on to it from another Bench .
Bench confusion
If you are familiar with Frappe Framework development then term "bench" may not be a new one and might cause some confusion. This is a perfectly sane response to our shortcomings when it comes to naming things. To help clear this, I'll try and differentiate between the different benches:
Term |
Context |
Description |
---|---|---|
Frappe Bench |
Frappe Framework |
Directory that holds a collection of Frappe Framework apps and sites on which they may be installed. |
|
Frappe Framework |
CLI tool used to manage a Frappe Bench . |
Bench |
Cloud |
Frappe Bench running inside a container from which your site is served. |
In the context of Frappe, all benches are conceptually linked (unless you are talking about a regular bench ).
How are all the benches related to each other?
I'm stupefied that you asked, but here you go:
A
Bench
image
is built by running
frappe/bench
commands inside a Docker build to instantiate a
Frappe Bench
folder into which your apps are installed by—once again—running
frappe/bench
commands.
Once this Docker build completes, we run the Bench image as a container and then do one of the following:
-
Create a new site for you.
-
Move your existing site from another Bench to the current one.