Skip to content

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

JHopeCollins
Copy link
Member

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:

  • If installing from release then the behaviour is unchanged - Firedrake and PETSc are both built from the corresponding release branches.
  • If installing from any other branch, then firedrake-configure is downloaded from the specified branch, PETSc is installed from the latest main branch, and Firedrake is installed from the latest version of the specified branch.

TODO:
Some downstream repositories want to test against master rather than release, or test against both master and release. 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.

# 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.
Copy link
Contributor

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.

@dham dham marked this pull request as draft June 25, 2025 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants