Is it possible to use a Docker container to build dolfinx from source for cpp?

So in terms of the docker container at:

docker run -ti dolfinx/dolfinx:stable

is it possible to use the container to build dolfinx from source for cpp? If so how might that be done?

Of course. dolfinx/dev-env:stable and dolfinx/dev-env:current are built for this purpose. Or you can just use the container you’re already running and share it with whichever directory structure you’re working with.

See for example GitHub - FEniCS/dolfinx: Next generation FEniCS problem solving environment.

So inside the docker container I looked in the root user home folder if there was a copy of dolfinx so since there wasn’t I git cloned dolfinx and basix. It still is claiming UFCx is a missing dependancy from:

docker run -ti dolfinx/dev-env:stable

which is stated to have all the dependencies needed for dolfinx.

Is it possible maybe there is a version of dolfinx already in the containers tree somehow?

Also that sounds interested about sharing the directory structure however that isn’t really something I am yet familiar with in therms of Docker. Could it be explained what is meant by how to share the directory structure in terms of using a docker container with dolfinx and a desktop Ubuntu 22.04 installation that is not virtualized?

So far a search for docker run -ti dolfinx/dev-env:stable did not turn up any results from inside the running container.

The dev env does not have:

  • Basix
  • ufl
  • ffcx (UFCx Which is a sub package)

as all of these are part of the developer toolchain.
They would have to be installed by you.

You shouldn’t share the installation between system, but you can share volumes from your computer by using -v, see Saving files & library in fenicsx environment - #2 by dokken
Fenics on server - #2 by dokken

1 Like