Open
Conversation
- Add docs/getting-started/docker-release.rst covering pre-built GHCR images, versioning, volume mounting, MPI usage, Gmsh mesh workflow, and bundled examples - Remove outdated quick-start.rst (development Docker build) - Update getting-started/index.rst: add docker-release to toctree, remove quick-start, update intro text - Update docs/index.rst: add GHCR mention on landing page
Add gmsh to the runtime apt dependencies in both Dockerfile.release and Dockerfile.all so users can generate meshes directly inside the container. Update docs to remove the host-Gmsh prerequisite and adjust the example workflow accordingly.
…en inside container
6342553 to
fd029ed
Compare
…openblas.so.0 PETSc in the builder (tandem-base:3.22.5) links against libopenblas.so.0, but the runtime stage only installed libblas3 which provides libblas.so.3. Adding libopenblas0-pthread supplies the exact SONAME the binaries need.
PETSc is compiled with ParMETIS support; libparmetis.so.4.0 is a transitive runtime dependency not covered by the previous package list.
c033f48 to
c2e5340
Compare
Collaborator
Author
|
This is ready to be merged downstream to Piyus's PR. Note on ARM CPUs. I managed to create a working image built on my laptop, but was not able to create one that can be built on GitHub and run on my Mac M3. For now, I've put all those attempts on a new bench (ymagen/arm-release-images) and will revisit them later when I have more time. |
Collaborator
|
Ok, I won't have time to look at it again because of the force-push, which prevents me from identifying the new changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Docker release images and CI workflow
Summary
This PR adds pre-built Docker release images for Tandem, published to GitHub Container Registry (GHCR). Users can now run any Tandem configuration without compiling from source.
What's included
Docker infrastructure (
docker/release/)Three Dockerfiles implement a two-stage (builder + slim runtime) pipeline:
Dockerfile.baseDockerfile.releaseDIMandDEG) on top of the baseDockerfile.alltandem_2d_6p_tandem,tandem_3d_3p_tandem, …)All images:
linux/amd64onlytandemuser/work/examples/CI workflow (
.github/workflows/release-images.yml)Three-job GitHub Actions pipeline:
build-base— builds and pushesghcr.io/tear-erc/tandem-basewith a run-specific tag to avoid:latestraces.build-images— matrix job (2 dims × 6 degrees = 12 parallel builds) that produces individual imagesghcr.io/tear-erc/tandem:<dim>d-<deg>p.build-all— builds the all-in-one imageghcr.io/tear-erc/tandem:all.Triggers:
docker/release/**/ the workflow file itself (for development/testing)v*(versioned release) → also pushes:2d-6p,:2d-6p-1.2.0,:all,:all-1.2.0tagsDocumentation (
docs/getting-started/)docker-release.rst— covers prerequisites (Docker + host-side Gmsh), the all-in-one image, versioning strategy, volume mounting (-v $(pwd):/hostto avoid shadowing/work/examples), MPI usage, and a step-by-step example workflow (copy.geo+.tomlout → generate mesh with Gmsh on host → run inside container).quick-start.rst— the old development Docker workflow (compile-from-source inside a dev container) is no longer the recommended entry point.getting-started/index.rst— toctree and intro text updated to point users to the release images first, then the installation guide for custom builds.docs/index.rst— added a one-line GHCR mention on the main landing page.Tagging strategy
:all-<branch-name>,:2d-6p-<branch-name>(testing only)v*git tag:all,:all-latest,:all-1.2.0,:2d-6p,:2d-6p-latest,:2d-6p-1.2.0@dmay23 I do not have the permission to make those images public
The GHCR package ghcr.io/tear-erc/tandem is currently private — this is GitHub's default for newly created packages
To make the images publicly pullable without authentication, an org admin needs to change the visibility once:
Go to https://github.com/orgs/TEAR-ERC/packages/container/tandem/settings
scroll to Danger Zone → Change visibility → Public
This is a one-time action — all future tags pushed to these packages will automatically inherit public visibility.