build: from: type: docker url: docker://ghcr.io/project-zot/golang:1.23 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