Question about FRAPPE_BRANCH in layered build: Branch name vs. Docker Hub image tag?

I’m currently building custom images using the layered Containerfile/Dockerfile from frappe_docker.

In the documentation examples and Dockerfile defaults, FRAPPE_BRANCH is set to version-16. In the Dockerfile, this argument is used both for pulling the base images (frappe/build:${FRAPPE_BRANCH}) and during bench init --frappe-branch=${FRAPPE_BRANCH}.

On Docker Hub, I noticed there are specific tags like v16.x.x in addition to version-16. However, if I pass a specific release tag (like v16.x.x) to FRAPPE_BRANCH:

  1. Will bench init try to clone a git branch named v16.x.x from the Frappe repository?

  2. If GitHub only has the version-16 branch (or specific release tags that might differ), won’t bench init fail?

My goal is to build an image with the latest updates for v16. What is the recommended way to set FRAPPE_BRANCH? Should I stick with version-16, or is there a standard practice for pinning or using release versions in layered builds?

Thanks for your guidance!