You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@ppetko are you still planning to take this on? Happy to defer if you are. If you've moved on or want a hand, I'm glad to pick it up.
A few thoughts in case it's useful for whoever does it:
Containerfile vs Dockerfile: a single Dockerfile works with both Docker and Podman (Podman reads Dockerfile by default), so one file should cover both runtimes unless there's a specific reason to split.
Base image: python:3.12-slim is a safe default. Alpine saves ~30 MB but can hit musl issues with some Python wheels.
Runtime needs git: incremental updates rely on git ls-files, so git has to be installed in the runtime stage.
Non-root user (uid 1001) and a CRG_VERSION build arg pinned to PyPI by default, with override for dev.
Multi-arch: amd64 + arm64 via buildx is low-effort to add upfront and saves a follow-up PR.
@tirth8205 any preferences on scope (Dockerfile only vs Dockerfile + GHCR publish workflow) before someone starts?
Reviewed current main: there is still no Dockerfile/Containerfile and no container build/publish workflow, so this request is not implemented. A mergeable contribution should use one Dockerfile compatible with Docker and Podman, include git in the runtime image, run as a non-root user, and validate both amd64 and arm64 builds plus a real graph build inside the container. Keeping this open for that implementation; GHCR publishing can remain a separate follow-up if the first PR only adds the image definition.
Thanks for confirming the requirements. I’d like to work on the first PR with the focused scope you described: one Dockerfile compatible with Docker and Podman, git available at runtime, and execution as a non-root user.
I’ll validate builds for both linux/amd64 and linux/arm64, and verify a real graph build inside the container. I’ll leave GHCR publishing for a separate follow-up.
@gowrishacv yes, go ahead, and sorry for leaving you hanging since August.
Nobody else is on it. I checked staging today: still no Dockerfile, no Containerfile, no container workflow.
Your scope is the right one and the requirements in my earlier comment stand. To be concrete about what I will check when the PR arrives:
one Dockerfile that works under both docker build and podman build
git present in the final image, since collect_all_files() and get_changed_files() shell out to it and the graph is empty without it
non-root user at runtime
linux/amd64 and linux/arm64 both build
a real code-review-graph build runs inside the container against a mounted repo and produces a non-zero node count, with the output in the PR
Two things worth deciding up front:
.code-review-graph/ is written next to the repo, so the mounted repo directory has to be writable by the non-root uid. Say in the README what docker run line you expect people to use, or the first bug report will be a permissions error.
Do not bake a graph into the image, and do not run a build at image build time.
Your point about Alpine and musl wheels matches what I would pick. python:3.12-slim is fine.
Activity
gowrishacv commentedon Apr 28, 2026
@ppetko are you still planning to take this on? Happy to defer if you are. If you've moved on or want a hand, I'm glad to pick it up.
A few thoughts in case it's useful for whoever does it:
Dockerfileworks with both Docker and Podman (Podman reads Dockerfile by default), so one file should cover both runtimes unless there's a specific reason to split.python:3.12-slimis a safe default. Alpine saves ~30 MB but can hit musl issues with some Python wheels.git ls-files, sogithas to be installed in the runtime stage.CRG_VERSIONbuild arg pinned to PyPI by default, with override for dev.buildxis low-effort to add upfront and saves a follow-up PR.@tirth8205 any preferences on scope (Dockerfile only vs Dockerfile + GHCR publish workflow) before someone starts?
tirth8205 commentedon Jul 27, 2026
Reviewed current main: there is still no Dockerfile/Containerfile and no container build/publish workflow, so this request is not implemented. A mergeable contribution should use one Dockerfile compatible with Docker and Podman, include git in the runtime image, run as a non-root user, and validate both amd64 and arm64 builds plus a real graph build inside the container. Keeping this open for that implementation; GHCR publishing can remain a separate follow-up if the first PR only adds the image definition.
gowrishacv commentedon Aug 5, 2026
Thanks for confirming the requirements. I’d like to work on the first PR with the focused scope you described: one Dockerfile compatible with Docker and Podman,
gitavailable at runtime, and execution as a non-root user.I’ll validate builds for both
linux/amd64andlinux/arm64, and verify a real graph build inside the container. I’ll leave GHCR publishing for a separate follow-up.tirth8205 commentedon Sep 16, 2026
@gowrishacv yes, go ahead, and sorry for leaving you hanging since August.
Nobody else is on it. I checked
stagingtoday: still noDockerfile, noContainerfile, no container workflow.Your scope is the right one and the requirements in my earlier comment stand. To be concrete about what I will check when the PR arrives:
Dockerfilethat works under bothdocker buildandpodman buildgitpresent in the final image, sincecollect_all_files()andget_changed_files()shell out to it and the graph is empty without itlinux/amd64andlinux/arm64both buildcode-review-graph buildruns inside the container against a mounted repo and produces a non-zero node count, with the output in the PRTwo things worth deciding up front:
.code-review-graph/is written next to the repo, so the mounted repo directory has to be writable by the non-root uid. Say in the README whatdocker runline you expect people to use, or the first bug report will be a permissions error.Your point about Alpine and musl wheels matches what I would pick.
python:3.12-slimis fine.GHCR publishing stays out of this PR as you said.
gowrishacv commentedon Sep 17, 2026
Thank you for confirming the scope. I’ll start working on it and will open a focused PR against staging with the requested validation results.