GitHub Container Registry
github.blog
github.blog
Guess this would work out okay for storing some development images but definitely does not seem feasible for production use.
Unless I'm missing something? There's some fine print about it being free within the context of a github action, but this doesn't really seem clear. Does my fleet of ec2 instances pulling down the image after a new deployment count as within an "action"?
We recommend using GHCR for the development and test workflows and then publishing to the "Cloud *CRs" for your production images such that they can be pulled directly from there.
Because that's how you get paid or is there actually a value add here I'm not seeing?
"Tighter integration" and stronger vendor lockin isn't actually a selling point for anyone but the seller.
I'm not sure I buy the "better reproducibility" line either, whats better here?
As mentioned, this is best (for now) as a dev/test tool, rather than a general container registry.
Disclosure: I work at Azure.
Disclosure: that was obvious :)
No hard feelings, just pointing out the community needs more than corp speak to be convinced, especially when Microsoft is telling you "its just better ok"
The problem is, tighter coupling still comes with costs that some people aren't willing to pay.
I have 2GB container image, originally pulling takes 31-44sec. After migrating to ghcr.io, it was 38sec. Image is set public and running on a private(org) repository Action.
How much faster should we expect?
Edit: Found it. https://github.com/features/packages#pricing
To me, the price to beat is the $0.04-$0.20 a month I pay for Google Container Registry (price depending on whether I remember to go back and delete older images or not). I'm guessing it's not going to get to that level of commodity priced, but I don't see this product being competitive without giving a heck of a lot more space for cheaper.
This might be a good time to remind that GitLab offers free container registries for all projects for a few years now.
Not really a meaningful difference if I’m reading that correctly.
If we add GitLab's superb CICD, which runs circles around the mess that GitHub Actions is, then it's thumbs up all around.
I'm not sure the Container Registry on its own will necessarily be attractive to people just looking for commodity-priced container storage, but GH Actions + Container Registry does make for a pretty compelling CI/CD story, I have to admit.
> Container Registry is free for private images during the beta, and as part of GitHub Packages will follow the same pricing model when generally available.
https://azure.microsoft.com/en-us/services/container-registr...
If they did talk, I expect it would mostly be to decide on segmentation.
Microsoft still seems to be quite coy on what the actual long term plan is, but from at least some appearances there seems to be one in this case. (I've heard lots of rumors but no easy to find reputable sources that Azure DevOps eventually gets eaten as a brand by the GitHub brand and an eventual (auto-)migration. I still don't know if I can trust those rumors, but that seems like one of the better options to me.) At the moment in the short/medium term it seems like Microsoft is trying to dual brand the same products to target different customer types.
You can tell that Microsoft absolutely respects GitHub as a brand and just based on raw public changelogs and available roadmaps there seems to be a lot more investment in labor and "spirit" in GitHub than Azure DevOps right now.
Again, there are nothing more than rumors at this point. Yet there was always something of an impression that when Microsoft's bharry retired the lights might go out on Microsoft's TFS/VSO/Azure DevOps legacy, and the timing of the GitHub purchase coincides with that idea that GitHub is a full replacement.
I've even heard some of how strongly Microsoft sales people are trying to encourage on-premises server installs to move to GitHub Enterprise (and away from legacy TFS products).
Many signs seem to be pointing to GitHub will be the last product standing (powered by Azure).
Given the choice of something like llll.dev or llll.io for a private registry, would one be preferable?
Going for your own (solid) ccTLD should be the safest for you.
This is an annoyance with the GitLab Container Registry, which mandates that the repository part of the image name be 3 components or less, one of which must be the GitLab project name. So your images have to be named like namespace/project/something:tag, which may not be what you want.
Our only namespacing enforcement is that packages must be published under a user or organization namespace for which you have write permissions. For example, I'd be able to publish under `ghcr.io/taywrobel/redis`, or under `ghcr.io/github/redis`, but would be disallowed from publishing as `ghcr.io/saxonww/redis`.
Other than that restriction, you can have nested image namespaces with arbitrarily many segments; i.e. `ghcr.io/taywrobel/dev/redis` would be valid.
I think for an Enterprise customer being able to push images that don't match the user/org pattern would be good too. While you couldn't allow just anyone to push e.g. 'ghcr.io/docker/docker:stable', I think this is a valid want for an internal/self-managed registry.
That restriction is something we will be moving away from in the coming months. I like how GitHub allows you to publish an image under a namespace. We have an open issue for that: https://gitlab.com/gitlab-org/gitlab/-/issues/241027.
[0] https://www.docker.com/pricing/resource-consumption-updates
If you hit any compatibility issues, especially any with regards to the OCI spec, please let us know!
Separate accounts are a massive pain to manage by comparison.
A "service account" on GitHub is just another user account tied to a real user with that users MFA (if MFA is enabled, and since we're referring to valid security patterns, it should be).
GitHub's organizational features are poor.
A personal access token with `write:packages` and `read:packages` scopes is enough.
skopeo copy \
--src-creds <USER>:<ACCESS_TOKEN> \
--dest-creds <USER>:<ACCESS_TOKEN> \
docker://docker.pkg.github.com/<USER>/<REPO>/<IMG>:<VER> \
docker://ghcr.io/<USER>/<IMG>:<VER>
[1] https://github.com/containers/skopeoI would have hoped that the GitHub Action token could login given that the permissions for a GHA token already have the ability to read/write to packages: https://docs.github.com/en/actions/configuring-and-managing-...
If I use an app token that's derived from a GitHub App installation, what user name do I use?
https://docs.gitlab.com/ee/user/packages/container_registry/...
Today we are pulling from one repo's packages to another repo via a token when dealing with shared base images. Clunky, but also counts as a data transfer charge I believe. (maybe not if using a github token)
I'm not sure the account billing page clears things up for me:
https://docs.github.com/en/github/setting-up-and-managing-bi...
Should be free I think?
I hope you'll give this a try. GHCR is based off an all new code stack. You'll notice that now you need to associate Containers and the repositories they come from instead of publishing "into repositories". Our new model has packages / containers published into orgs which will make other services simpler as elevate them as well.
I.e. if I release a popular image, and it's pulled constantly, I'll end up paying for that popularity in my GitHub bill?
Pro - Data transfer out outside of Actions - 10GB limit, then $0.50 per GB
After we go GA, we'll be charging for storage and data transfer on private images only, the same the current registry offerings. If your popular image is public, you'll incur no bandwidth charges, regardless of how often it's pulled.
Anyone successfully deleted a container image?
Edit: Okay, so it appears you just have to push it with a GitHub Action. I'll give that a try.
You should already see `Container` listed as a package type in the UI, and can begin publishing packages by creating a personal access token with `read:packages` and `write:packages` scopes as appropriate - https://docs.github.com/en/github/authenticating-to-github/c...
The catalog functionality is just more complex given the granularity of our permission model (configurable down to the package level), so it unfortunately didn’t make the cut for the beta feature list.
Disclosure: I work at Azure.
Including the free tier, if they want to keep their "world's largest library and community for container images" status. But free tiers cost money.
With RedHat going after Docker itself with their daemonless version of Docker, podman, and docker-ce's lack of cgroupsv2 support, Docker Enterprise having to compete with K8S, and there being multiple entrenched container registry companies (eg Quay) it must be tough at Docker Inc.
Nobody cares about Podman except Red Hat and their most loyal fans. I'd be surprised if podman has managed to steal more than 1% of Docker's install base.
> docker-ce's lack of cgroupsv2 support
containerd supports cgroupsv2. Docker CE is based on containerd. If the current release doesn't have it, the next release will.
> Docker Enterprise having to compete with K8S
Docker Enterprise includes a K8S distribution. Does it compete with itself?
> multiple entrenched container registry companies (eg Quay)
Quay is not a company. It is a CoreOS (now Red Hat) product.
> it must be tough at Docker Inc.
I believe that's true. Just not for any of the reasons you have given.
This seems dismissive. Podman has many neat features that docker doesn't (pods) or were added later (rootless containers).
https://developers.redhat.com/blog/2019/01/29/podman-kuberne...
https://developers.redhat.com/blog/2019/01/15/podman-managin...
Obviously, you can use kompose and docker-compose but I would argue podman has better experience.
Additionally, being the default host (so shorter image name specifications) for most clients gives it a little bit of a leg up.
https://hub.docker.com/search?q=&type=image&image_filter=off...
Until GitHub is able to get as many official images sponsored by the open source projects themselves, DockerHub will not be going away.
Not too big of a deal, but I'd imagine many users would take that into account when they're making chooses.
Link 1: https://www.docker.com/blog/scaling-dockers-business-to-serv...
What are GH Packages?