You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 4
Next »
Artifact storage is intended to hold the build results for various components, as well as large binaries that are needed for distribution or builds.
As a proposed design, the artifacts are stored in a file system hierarchy on S3DF, and an (optional?) database is used to track metadata about the artifacts and help in locating them, if necessary.
Update: The "registry" DockerHub image (https://hub.docker.com/_/registry) can allow us to have a local image registry. This may be usable as the basis of a general-purpose binary artifact storage.
ARTIFACT_TOP=/sdf/group/ad/eed/build_system/artifact_storage
$ARTIFACT_TOP/<component>/build_results/<tag>/...
$ARTIFACT_TOP/<component>/data/...
Attempt to start a basic local registry using the image:
- Pull registry image
pnispero@PC100942:~/BuildSystem/artifact_storage$ docker pull registry:2
2: Pulling from library/registry
619be1103602: Pulling fs layer
862815ae87dc: Pulling fs layer
74e12953df95: Pulling fs layer
6f0ce73649a0: Waiting
ef4f267ce8ed: Waiting
- Run the registry
pnispero@PC100942:~/BuildSystem/artifact_storage$ docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v /mnt/registry:/var/lib/registry \
registry:2
6fc1b5baf2faded8842cec71a382a1b9b3a7b6ce6a664c376c2f7a824e3ea17a
- Push an image to registry
docker tag pnispero/rocky9-env:latest localhost:5000/rocky9-env
docker push localhost:5000/rocky9-env
- Check /mnt/registry/ and also shell into the registry container and check /var/lib/registry
pnispero@PC100942:~/BuildSystem/artifact_storage$ ls /mnt/registry/docker/registry/v2/
blobs/ repositories/
pnispero@PC100942:~/BuildSystem/artifact_storage$ ls /mnt/registry/docker/registry/v2/repositories/
rocky9-env
pnispero@PC100942:~$ docker exec -it registry /bin/sh
/ # ls /var/lib/
apk/ misc/ registry/ udhcpd/
/ # ls /var/lib/registry/docker/registry/v2/
blobs/ repositories/ test.txt
/ # ls /var/lib/registry/docker/registry/v2/repositories/rocky9-env/
- We'll do something similar when deploying the container to kubernetes, and we can mount sdf as the volume. I also added a 'test.txt' to see if you can store other things besides the images.
The more complicated part will be to run an externally-accessible registry, not localhost, setting up tls/authentication, load balancing,