https://github.com/linbit/prestomanifesto
create multi architecture docker registries
https://github.com/linbit/prestomanifesto
Last synced: 10 months ago
JSON representation
create multi architecture docker registries
- Host: GitHub
- URL: https://github.com/linbit/prestomanifesto
- Owner: LINBIT
- License: gpl-3.0
- Created: 2020-06-22T13:54:56.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-06-07T13:12:58.000Z (about 3 years ago)
- Last Synced: 2025-02-13T00:33:50.400Z (over 1 year ago)
- Language: Go
- Size: 40 KB
- Stars: 2
- Watchers: 8
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# prestomanifesto
This is an opinionated tool to generate multi-arch docker registries.
# Assumptions
- a proper docker registry served via `https`
- an account that is able to do administrative tasks, that has its credentials in `~/.docker/config.json`
(i.e., `docker login $domain`) was successfully executed.
- images are stored in architecture specific namespaces (i.e., `$domain/$arch/$image:$tag`, where `$arch`
is arbitrary, but usually something like `amd64`, `ppc64le`,...)
# What does it do?
`prestomanifesto` (concurrently) crawls a registry and collects all architecture specific repositories and tags.
It then generates the top-level multi-arch image manifests and pushes them. If the image manifests are already
up-to-date, no actual change will be made.
# Example
```
$ prestomanifesto registry.io
crane index append --docker-empty-base --manifest registry.io/amd64/rck:latest --manifest registry.io/s390x/rck:latest --tag registry.io/rck:latest
```
# Docker
This requires a bind mount for `config.json`, containing the credentials for the registry:
```
docker run -it --rm \
-v ~/.docker/config.json:/etc/docker/config.json:ro linbit/prestomanifesto -dry-run registry.io
```