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}} clean binary
    cat > config.json << EOF
    {
      "storage":{
          "rootDirectory":"/var/lib/registry",
          "gc": false,
          "dedupe": false
      },
      "http":{
          "address":"0.0.0.0",
          "port":"5000"
      },
      "log":{
          "level":"debug"
      }
    }
    EOF

    cat config.json

    mkdir -p /zotcopy/.build/${{REPO_NAME}}/binary
    mkdir -p /zotcopy/.build/${{REPO_NAME}}/cert
    mkdir -p /zotcopy/.build/${{REPO_NAME}}/config
    cp /go/src/github.com/project-zot/zot/bin/zot-linux-amd64 /zotcopy/.build/${{REPO_NAME}}/binary
    cp /go/src/github.com/project-zot/zot/config.json /zotcopy/.build/${{REPO_NAME}}/config
    cp /etc/ssl/certs/ca-certificates.crt /zotcopy/.build/${{REPO_NAME}}/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/bin/zot-linux-amd64
  volumes:
    - /var/lib/registry
  cmd:
    - serve
    - /etc/zot/config.json