Skip to content
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

Add Docker instructions to Cardinal website #955

Open
aprilnovak opened this issue Sep 11, 2024 · 7 comments
Open

Add Docker instructions to Cardinal website #955

aprilnovak opened this issue Sep 11, 2024 · 7 comments

Comments

@aprilnovak
Copy link
Collaborator

Reason

INL set up a Docker container for Cardinal; we can add these instructions to the website in order to streamline setup for new users.

Design

Add instructions to website.

Impact

Improved user experience.

@ahnaf-tahmid-chowdhury
Copy link

Could you please share the link to the Dockerfile?

@aprilnovak
Copy link
Collaborator Author

aprilnovak commented Sep 25, 2024

Hi @ahnaf-tahmid-chowdhury -- sorry about the slow response! I got caught up last week and forgot to respond. Right now I have a PDF with the instructions shared below. These are written for a workshop given at the UKAEA in August, but the instructions should still work.

Docker Instructions[2].pdf

@ahnaf-tahmid-chowdhury
Copy link

Thank you very much for sharing this. I can add these instructions to the documentation. However, I was wondering about the source code of the Dockerfile. We could use it in our CI and create some unit tests. I’m wondering if it’s possible to share the Dockerfile publicly or if we should write our own.

@aprilnovak
Copy link
Collaborator Author

@loganharbour can you address the above question? thanks!

@loganharbour
Copy link
Member

This image unfortunately isn't produced using Docker. It's produced using a series of layered apptainer images produced by moose itself, which we then convert to a docker image.

@ahnaf-tahmid-chowdhury
Copy link

Thank you for the clarification, @loganharbour! Given that the Docker image is converted from layered apptainer images, do you think it would be possible to share the steps or configurations used for that process? It would help us understand how to integrate it into our CI and possibly adapt it for future testing purposes. Additionally, if there's any guidance on replicating or extending this setup, that would be greatly appreciated.

@loganharbour
Copy link
Member

Due to the fact that we go from apptainer -> docker, the build history isn't retained like a typical docker container.

However, we do have folks that are using https://hub.docker.com/r/idaholab/moose-dev as a base image for CI for moose-based applications. You should be able to extend it as needed for adding additional dependencies. This is the docker version of the container that we use for all CI for cardinal (and many other apps).

This is a rocky8 based image with mpich, petsc, libmesh, and wasp (the standard moose based application dependencies). I'm in the process of releasing more of these, including an openmpi version (which we use as the base for running moose applications on INL hpc).

Within the moose-dev docker image, you'll have LIBMESH_DIR, PETSC_DIR, etc setup for you.

The version of these images correspond to a version that you can obtain by running:

./scripts/versioner.py moose-dev

within the MOOSE directory for your application.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants