Shoulder.dev Logo Shoulder.dev

Automating Container Image Deployment with OCI

Scenario: A developer, Alice, wants to automate the deployment of container images to various environments using Open Container Initiative (OCI) Distribution and notifications. Alice uses zot as her vendor-neutral OCI image registry server and GitHub Actions for continuous integration and deployment.

Codebase Files and Directories:

  • cmd/
    • digest/
      • main.go
    • registry/
      • config-cache.yml
      • config-dev.yml
      • config-example.yml
      • main.go
      • registry-api-descriptor-template/
        • main.go
    • configuration/
      • configuration.go
      • configuration_test.go
      • configuration/parser.go
      • configuration/parser_test.go
    • digestset/
      • deprecated.go
    • dockerfiles/
      • authors.Dockerfile
      • docs.Dockerfile
      • git.Dockerfile
      • lint.Dockerfile
      • vendor.Dockerfile
    • docs/
      • content/
        • about/
        • recipes/
        • spec/
        • storage-drivers/
        • _index.md
      • data/
        • menu/
      • i18n/
        • en.yaml
      • layouts/
        • _default/
      • static/
        • favicon/
        • images/
        • brand.svg
        • custom.css
      • themes/
        • hugo-geekdoc/
      • dockerhub.md
      • hugo.yaml
    • health/
      • api/
        • api.go
        • api_test.go
      • checks/
        • checks.go
        • checks_test.go
      • doc.go
      • health.go
      • health_test.go
    • internal/
      • client/
        • auth/
        • transport/
        • blob_writer.go
        • blob_writer_test.go
        • errors.go
        • errors_test.go
        • repository.go
        • repository_test.go
      • dcontext/
        • context.go
        • doc.go
        • http.go
        • http_test.go
        • logger.go
        • trace.go
        • trace_test.go
        • util.go
        • version.go
        • version_test.go
      • requestutil/
        • util.go
        • util_test.go
    • manifest/
      • manifestlist/
        • manifestlist.go
        • manifestlist_test.go
      • ocischema/
        • builder.go
        • builder_test.go
        • index.go
        • index_test.go
        • manifest.go
        • manifest_test.go
      • schema2/
        • builder.go
        • builder_test.go
        • manifest.go
        • manifest_test.go
      • doc.go
      • versioned.go
    • metrics/
      • prometheus.go
    • notifications/
      • bridge.go
      • bridge_test.go
      • endpoint.go
      • event.go
      • event_test.go
      • http.go
      • http_test.go
      • listener.go
      • listener_test.go
      • metrics.go
      • metrics_test.go
      • sinks.go
      • sinks_test.go
    • project/
      • dev-image/
        • Dockerfile
      • hooks/
        • README.md
        • configure-hooks.sh
        • pre-commit
      • registry/
        • api/
          • errcode/
          • v2/
        • auth/
          • htpasswd/
          • silly/
          • token/
        • handlers/
          • api_test.go
          • app.go
          • app_test.go
          • basicauth.go
          • blob.go
          • blobupload.go
          • catalog.go
          • context.go
          • health_test.go
          • helpers.go
          • hmac.go
          • hmac_test.go
          • hooks.go
          • mail.go
          • manifests.go
          • tags.go
        • listener/
          • listener.go
        • middleware/
          • registry/
          • repository/
        • proxy/
          • scheduler/
          • proxyauth.go
          • proxyblobstore.go
          • proxyblobstore_test.go
          • proxymanifeststore.go
          • proxymanifeststore_test.go
          • proxymetrics.go
          • proxyregistry.go
          • proxytagservice.go
          • proxytagservice_test.go
        • storage/
          • cache/
          • driver/
          • blob_test.go
          • blobserver.go
          • blobstore.go
          • blobwriter.go
          • blobwriter_nonresumable.go
          • blobwriter_resumable.go
          • catalog.go
          • catalog_test.go
          • doc.go
          • error.go
          • filereader.go
          • filereader_test.go
          • garbagecollect.go
          • garbagecollect_test.go
          • io.go
          • linkedblobstore.go
          • linkedblobstore_test.go
          • manifestlisthandler.go
          • manifeststore.go
          • manifeststore_test.go
          • ociindexhandler.go
          • ocimanifesthandler.go
          • ocimanifesthandler_test.go
          • paths.go
          • paths_test.go
          • purgeuploads.go
          • purgeuploads_test.go
          • registry.go
          • schema2manifesthandler.go
          • schema2manifesthandler_test.go
          • tagstore.go
          • tagstore_test.go
          • vacuum.go
        • doc.go
        • registry.go
        • registry_test.go
        • root.go
      • releases/
        • README.md
        • v2.5.0-changelog.txt
        • v2.6.0-changelog.txt
        • v2.7.0.toml
        • v3.0.0.toml
    • tests/
      • conf-e2e-cloud-storage.yml
      • conf-local-cloud.yml
      • docker-compose-e2e-cloud-storage.yml
      • docker-compose-storage.yml
      • push.sh
    • testutil/
      • handler.go
      • manifests.go
      • push.go
      • tarfile.go
    • tracing/
      • exporter.go
      • exporter_test.go
      • loggerwriter.go
      • tracing.go
    • vendor/
      • cloud.google.com/
        • go/
      • github.com/
        • AdaLogics/
        • Azure/
        • AzureAD/
        • aws/
        • beorn7/
        • bshuster-repo/
        • cenkalti/
        • cespare/
        • coreos/
        • cyphar/
        • davecgh/
        • dgryski/
        • distribution/
        • docker/
        • felixge/
        • go-jose/
        • go-logr/
        • golang/
        • golang-jwt/
        • google/
        • googleapis/
        • gorilla/
        • grpc-ecosystem/
        • hashicorp/
        • inconshreveable/
        • jmespath/
        • klauspost/
        • kylelemons/
        • matttproud/
        • mitchellh/
        • opencontainers/
        • pkg/
        • pmezard/
        • prometheus/
        • redis/
        • sirupsen/
        • spf13/
        • stretchr/
        • go.opencensus.io/
        • go.opencensus.io/internal/
        • go.opencensus.io/metric/