christian-korneck / docker-pushrm

"Docker Push Readme" - a Docker CLI plugin to update container repo docs
MIT License
139 stars 4 forks source link

Automated README Set based on Image Annotations or Labels #9

Open Vad1mo opened 4 years ago

Vad1mo commented 4 years ago

Automated README Set from repo Annotations/Labels

docker-pushrm could read Annotations or Labels from images and use the provided URLs in the annotation or label to fetch the README content.

One of the tricky parts would be that fact that most README files in the corp env are not public, so simply calling http get won't do the trick. An easier and more common approch would be to use GIT + SSH key this setup is support basically everywhere.

Annotations or Labels Format Recommendations

https://docs.docker.com/config/labels-custom-metadata/#key-format-recommendations https://github.com/opencontainers/image-spec/blob/master/annotations.md

Libs to fetch Image Metadata

https://github.com/containers/skopeo https://github.com/containers/image

Edit:

In addition to that, especially in the first iteration it would be easier to implement only the use case where the Annotations/Labels is pointing to the README within the image itself.

christian-korneck commented 4 years ago

hi @Vad1mo , thanks a lot for the suggestion. It's an interesting idea. Would really like to elaborate further. What typical usecase / workflow do you have in mind for this?

The first thing that popped into my mind was that something like this could be useful when migrating container repos between registries (i.e. with skopeo sync <source> <target>). If the container image that you're migrating contains a label reference to the git repo it was built from then the README file could get fetched from there (with git) and get set as repo description on the target container repo.

Do you have something like this in mind or are you after some other usecase?

Vad1mo commented 4 years ago

What I had in mind was to run docker-pushrm as an autonomous background job that could fetch the Readme from git or from within the image itself and update the info in the registry.

The background docker-pushrm would then crawl or would get triggered by a webhook do its job.

So all in all it could run autonomous without the user doing anything in the in CI/CD or himself.