-
Notifications
You must be signed in to change notification settings - Fork 167
More flexible Dockerfile, and restore pushing docker containers for master #4400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
docker/Dockerfile.vanilla
Outdated
# BRANCH: | ||
# The Firedrake branch to install from. The `firedrake-configure` script from this branch will be used. | ||
# - If BRANCH == "release": installs the latest firedrake release and the corresponding PETSc release. | ||
# - If BRANCH != "release": installs that Firedrake branch and the latest PETSc master branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This introduces some strange implicit behaviour. I feel like it might be better if the Firedrake and PETSc branches were specified separately (also it's PETSc main
, not master
).
Similarly it might make sense to have DEV={0,1}
to distinguish whether we do a release- or master-style build.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed to a single argument TARGET
that can either be:
release
for the latest release branch build.<tag>
e.g.2025.4.2
for a specific release.master
for the latest master branch build.
There seems to be some appetite for people building their own Firedrake Docker containers. The current Dockerfiles are very static in what they can do - apart from allowing different ARCH options. This PR makes the Dockerfile slightly more flexible by allowing passing a particular branch to install from:
release
then the behaviour is unchanged - Firedrake and PETSc are both built from the corresponding release branches.firedrake-configure
is downloaded from the specified branch, PETSc is installed from the latestmain
branch, and Firedrake is installed from the latest version of the specified branch.TODO:
Some downstream repositories want to test against
master
rather thanrelease
, or test against bothmaster
andrelease
. However, we no longer build a Docker container on pushes to master. Being able to specify a non-release branch to the Dockerfile means we can use the same Dockerfile to build containers for both release and master.