Custom images and GHCR space consumption

I am using a custom image based on Aurora and am tacking on additional packages as needed (so far WayDroid).

A concern I have with this approach is I am taking space in GHCR with my personal image at something like 5GB each run, and don’t seem to have a way to administer my repo. Does GHCR purge images after a certain amount of time? I’m mostly interested in being a good citizen because while it’s free for open source, I feel if everybody had their own image, the practice would possibly become unsustainable.

I would also be curious in some sort of management system to retain the last week, 4th week, and 12th week or something to keep historical versions just in case.

I think it has one image, every day, with a limit of 90 days? That means that you have 90 days of archive, but, if you’ve been building a bunch of images that day, it’ll just preserve the last one.

I think the limits are pretty generous. GitHub doesn’t strictly define their free limits. You shouldn’t worry as long as you aren’t generating like 20+ GB each day. I only start to run into problems when I include pretty stuff like a browser inside the image, and that’s also because I have two images (Bazzite and Aurora) as well as build my own version of Conty. So I use up, like, 50GB potentially a day and THAT is when I start to run into problem and has to wait for a week or so for it to reset/cooldown.

Part of the issue is a lot of Github’s stuff is “Don’t be a jerk, and use some semblance of good practice,” so it seems sort of similar for GHCR? For an example they don’t seem to care if you’ve somehow got gigabytes of code in a repo, but they don’t want a 1GB archive in your code (obviously for things like deltas, etc).

Good to know! I think I saw something about a limit but don’t remember where. I’ve personally got my daily Aurora image and a weekly Ubuntu + kxstudio one I use for distrobox, so it’s good to know they don’t sweat it too much.

The GitHub SLA for public repos is unlimited space and egress, but only 90 day’s worth. Though we’ve noticed they don’t garbage collect so it could be that you end up with a large backlog.

bsherman found an action to clean up old images and has been testing it on his personal repo: ublue-custom/.github/workflows/cleanup-old-images.yml at 68d3305fe51dd1cbae49d8ee8645861d81ac72b2 · bsherman/ublue-custom · GitHub

Oh that looks like a huge leap towards what I would want. I’ll dig around to see how far back mine go (probably not 90 days yet since I created this image) and see about getting it in place.