0
Fork 0
mirror of https://github.com/project-zot/zot.git synced 2024-12-16 21:56:37 -05:00
zot/build/stacker.yaml
Ramkumar Chinchani cb2af94b0b
feat: add support for docker images (#2714)
* feat: add support for docker images

Issue #724

A new config section under "HTTP" called "Compat" is added which
currently takes a list of possible compatible legacy media-types.

https://github.com/opencontainers/image-spec/blob/main/media-types.md#compatibility-matrix

Only "docker2s2" (Docker Manifest V2 Schema V2) is currently supported.

Garbage collection also needs to be made aware of non-OCI compatible
layer types.
feat: add cve support for non-OCI compatible layer types

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>

* 

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>

* test: add more docker compat tests

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>

* feat: add additional validation checks for non-OCI images

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>

* ci: make "full" images docker-compatible

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>

---------

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
2024-10-31 09:44:04 +02:00

79 lines
2.1 KiB
YAML

build:
from:
type: docker
url: docker://ghcr.io/project-zot/golang:1.22
binds:
- ../. -> /zotcopy
run: |
export GO111MODULE=on
export GOPATH='/go'
export HOME='/root'
export PATH='/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
mkdir -p /go/src/github.com/project-zot
cd /go/src/github.com/project-zot
git clone /zotcopy zot
cd /go/src/github.com/project-zot/zot
make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} RELEASE_TAG=${{RELEASE_TAG}} clean binary
cat > config.json << EOF
{
"storage":{
"rootDirectory":"/var/lib/registry"
},
"http":{
"address":"0.0.0.0",
"port":"5000",
"compat": ["docker2s2"]
},
"log":{
"level":"debug"
},
"extensions": {
"search": {
"enable": true,
"cve": {
"updateInterval": "2h"
}
},
"ui": {
"enable": true
},
"mgmt": {
"enable": true
}
}
}
EOF
cat config.json
mkdir -p /zotcopy/.build/${{REPO_NAME}}
cd /zotcopy/.build/${{REPO_NAME}}
mkdir -p binary/ cert/ config/
cp /go/src/github.com/project-zot/zot/bin/zot-${{OS}}-${{ARCH}} binary/
cp /go/src/github.com/project-zot/zot/config.json config/
cp /etc/ssl/certs/ca-certificates.crt cert/
build_only: true
"${{REPO_NAME:zot}}":
annotations:
org.opencontainers.image.description: "OCI-native container image/artifact registry (purely based on OCI Distribution Specification)"
os: ${{OS}}
arch: ${{ARCH}}
from:
type: docker
url: docker://gcr.io/distroless/base-debian12:latest-${{ARCH}}
overlay_dirs:
- source: ../.build/${{REPO_NAME}}/binary
dest: /usr/local/bin
- source: ../.build/${{REPO_NAME}}/cert
dest: /etc/ssl/certs
- source: ../.build/${{REPO_NAME}}/config
dest: /etc/zot
entrypoint:
- /usr/local/bin/zot-${{OS}}-${{ARCH}}
volumes:
- /var/lib/registry
cmd:
- serve
- /etc/zot/config.json