Skip to content

Move the CI Dockerfiles into dockerfiles/ and build them here - #577

Open
JRPan wants to merge 5 commits into
accel-sim:devfrom
purdue-aalp:docker-images
Open

JRPan wants to merge 5 commits into
accel-sim:devfrom
purdue-aalp:docker-images

Conversation

@JRPan

@JRPan JRPan commented Oct 31, 2026 •

Copy link
Copy Markdown
Collaborator

Retires accel-sim/Dockerfile. Its image branches move here, one file per image, and are built by a new workflow.

What moves

  • Each image branch becomes dockerfiles/<tag>.Dockerfile, built as ghcr.io/accel-sim/accel-sim-framework:<tag>.
  • Ubuntu-24.04-cuda-13.2-minimal comes from Ubuntu 24.04 CUDA 13.2.1 minimal Dockerfile#12. The branch of that name held a 12.8 Dockerfile (FROM ...cuda:12.8.0).
  • Ubuntu-24.04-cuda-12.8-minimal gains the AWS CLI and boto3, so CI's image can also run AWS Batch jobs.
  • Left out, both never published: Ubuntu-18.04-cuda-11.0 and Ubuntu-22.04-cuda-11.7, from 2025.
  • Source labels now point at this repo.

When images build

.github/workflows/docker-images.yml builds only the Dockerfiles a change touches. The rules are in .github/scripts/docker-plan.sh, which logs a build/skip reason for each image to the job summary:

  • Pull request: builds the changed images, without pushing.
    • A modified file always builds.
    • An added file builds only if its tag is not on ghcr yet, so this import rebuilds nothing that already exists.
  • Merge to dev: builds again and pushes. pc02 has the PR build's layers cached, so the push is the only real work.
  • workflow_dispatch: builds the tags you name, with an optional no_cache.
  • The jobs run only in accel-sim/accel-sim-framework.

Builds run on tgrogers-raid, which has no docker daemon. The runner account's docker CLI and buildx drive tgrogers-pc02's daemon over DOCKER_HOST=ssh://tgrogers-pc02. The same setup published the current 12.8-minimal from accel-sim/Dockerfile (run 41171899169).

Keeping the apps current

The workflow passes gpu-app-collection dev's HEAD as the GPU_APP_COLLECTION_SHA build arg, so the cached clone layer rebuilds only when dev moves. Without it, tgrogers-pc02 would keep reusing the first clone it made.

Expected on this PR

Two full builds, Ubuntu-24.04-cuda-13.1.1-minimal and Ubuntu-24.04-cuda-13.2-minimal, which are not on ghcr yet. The other 7 images are skipped. Both need accel-sim/gpu-app-collection#91, now merged.

Before merge

The ghcr package accel-sim-framework is still linked to accel-sim/Dockerfile. In its package settings:

  1. Unlink accel-sim/Dockerfile and connect this repo.
  2. Give this repo Write under Manage Actions access.

Otherwise the post-merge push is denied.

Testing

  • docker-plan.sh was checked against real history:
    • this import builds only 13.1.1 and 13.2
    • modify / delete / add
    • no change
    • first push of a branch
    • dispatch, including a bad tag
  • All the Dockerfiles pass docker buildx build --call=check with dockerfiles/ as the context.

🤖 Generated with Claude Code

JRPan and others added 5 commits October 31, 2026 01:32
Every image branch of accel-sim/Dockerfile becomes dockerfiles/<tag>.Dockerfile,
with 13.2-minimal taken from accel-sim/Dockerfile#12 (the branch of that name
held a 12.8 Dockerfile). The two never-published 2025 images (18.04/11.0,
22.04/11.7) are left behind. 12.8-minimal gains the AWS CLI and boto3.

docker-images.yml builds only the Dockerfiles a change touches: a modified file
always, an added one only if its tag is not on ghcr yet. PRs build without
pushing; the merge to dev rebuilds from pc02's cache and pushes. Builds run on
tgrogers-raid with DOCKER_HOST pointing at tgrogers-pc02's daemon.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n's sm_70 targets

It was never published and 13.2-minimal supersedes it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The clone layer's cache key never changed, so a build reused the clone from
the first run on tgrogers-pc02. That would keep the 13.2 image failing after
accel-sim/gpu-app-collection#91 lands. CI now passes dev's HEAD as a build arg.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It only failed because gpu-app-collection dev could not build under CUDA 13,
which accel-sim/gpu-app-collection#91 fixes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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

Successfully merging this pull request may close these issues.

1 participant