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

Docker Image for Dependencies #81

Open
ryanmrichard opened this issue Apr 11, 2023 · 8 comments
Open

Docker Image for Dependencies #81

ryanmrichard opened this issue Apr 11, 2023 · 8 comments
Assignees

Comments

@ryanmrichard
Copy link
Member

ryanmrichard commented Apr 11, 2023

Now that we can install, our goal is to start cacheing as much of our CI build as possible. This is going to involve building and maintaining Docker images. This process will inevitably, so at this point we focus on a minimum working example. In this "first pass", we need to create infrastructure (in the .github repo if this infrastructure lives on GitHub; I am also open to maintaining the infrastructure on DockerHub if that's easier) that will be responsible for building and maintaining what I will refer to as the "base image." In this first pass the base image will include:

  • GCC 9
  • CLang - 11
  • CMake - 3.17 (IIRC @yzhang-23 said we needed 3.17, not 3.16 as the )
  • CBLAS, LAPACKE, ScaLAPACKE
  • MPI
  • (Did I miss anything?)

This image is expected to be static. We will in general never rebuild it unless we drop a dependency or are optimizing it. This issue focuses exclusively on building this image and is considered complete when we can build this image and it has passed the acceptance test laid out in NWChemEx/ParallelZone#107.

@yzhang-23
Copy link
Contributor

For "The Docker image will be managed out of the .github repo.", do you mean we should put the docker image file outside the .github repo? Where should we put it?

@ryanmrichard
Copy link
Member Author

I was originally thinking that the machinery for building the image would live in this repo. I'm indifferent to where the actual image lives. It would probably be nice to keep it on GitHub, just so everything is here, but if it's easier to store the image somewhere else then go for it.

@yzhang-23
Copy link
Contributor

So, you mean after we build the docker image, we use the command docker image push to put the image somewhere, and later use docker image pull to get it?

@ryanmrichard
Copy link
Member Author

I have never used images with GitHub actions, but my guess is there's actions for these things already.

@yzhang-23
Copy link
Contributor

Sure. I will check and try. Thanks.

@yzhang-23
Copy link
Contributor

To be clear, we only need to build this basic docker image once and put it in some registry, and later every time when we need it we pull it from the registry, right?

@ryanmrichard
Copy link
Member Author

That's the eventual plan. Until we converge on what all needs to be in the image, we'll have to rebuild it several times.

@yzhang-23
Copy link
Contributor

Ok, I see. Of course we should refine the image until it becomes stable. I just want to confirm that no need to build the image using Github actions every time.

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

2 participants