From f2a72d7f77e3a5ae7430f41e48c85870f008de49 Mon Sep 17 00:00:00 2001 From: Milos Gajdos Date: Sun, 1 Oct 2023 11:06:36 +0100 Subject: [PATCH] Update Docker Hub README and keep it in sync with this repository. This commit * adds a new docs page (`dockerhub.md`) that contains Docker Hub README * updates the default config that gets backed into the docker image * updates CI with a new workflow job that keeps Docker Hub README in sync with the contents of the `docs/dockerhub.md` file Co-authored-by: CrazyMax Signed-off-by: Milos Gajdos --- .github/dockerhub-readme.yml | 32 +++++++++++++++++++++ cmd/registry/config-dev.yml | 41 -------------------------- docs/dockerhub.md | 56 ++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 41 deletions(-) create mode 100644 .github/dockerhub-readme.yml create mode 100644 docs/dockerhub.md diff --git a/.github/dockerhub-readme.yml b/.github/dockerhub-readme.yml new file mode 100644 index 0000000000..c12ad3984e --- /dev/null +++ b/.github/dockerhub-readme.yml @@ -0,0 +1,32 @@ +name: dockerhub-readme + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - 'main' + paths: + - '.github/dockerhub-readme.yml' + - 'docs/dockerhub.md' + +env: + DOCKERHUB_SLUG: distribution/distribution + +permissions: + contents: read + +jobs: + update: + runs-on: ubuntu-latest + steps: + - + name: Update Docker Hub README + uses: peter-evans/dockerhub-description@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + repository: ${{ env.DOCKERHUB_SLUG }} + readme-filepath: ./docs/dockerhub.md diff --git a/cmd/registry/config-dev.yml b/cmd/registry/config-dev.yml index 985892b144..9bf36583ea 100644 --- a/cmd/registry/config-dev.yml +++ b/cmd/registry/config-dev.yml @@ -4,20 +4,6 @@ log: fields: service: registry environment: development - hooks: - - type: mail - disabled: true - levels: - - panic - options: - smtp: - addr: mail.example.com:25 - username: mailuser - password: password - insecure: true - from: sender@example.com - to: - - errors@example.com storage: delete: enabled: true @@ -37,33 +23,6 @@ http: path: /metrics headers: X-Content-Type-Options: [nosniff] -redis: - addr: localhost:6379 - pool: - maxidle: 16 - maxactive: 64 - idletimeout: 300s - dialtimeout: 10ms - readtimeout: 10ms - writetimeout: 10ms -notifications: - events: - includereferences: true - endpoints: - - name: local-5003 - url: http://localhost:5003/callback - headers: - Authorization: [Bearer ] - timeout: 1s - threshold: 10 - backoff: 1s - disabled: true - - name: local-8083 - url: http://localhost:8083/callback - timeout: 1s - threshold: 10 - backoff: 1s - disabled: true health: storagedriver: enabled: true diff --git a/docs/dockerhub.md b/docs/dockerhub.md new file mode 100644 index 0000000000..55bb8aab80 --- /dev/null +++ b/docs/dockerhub.md @@ -0,0 +1,56 @@ +# Distribution + +This repository provides container images for the Open Source Registry implementation for storing and distributing container artifacts in conformance with the +[OCI Distribution Specification](https://github.com/opencontainers/distribution-spec). + + + +[![Build Status](https://github.com/distribution/distribution/workflows/CI/badge.svg?branch=main&event=push)](https://github.com/distribution/distribution/actions?query=workflow%3ACI) +[![OCI Conformance](https://github.com/distribution/distribution/workflows/conformance/badge.svg)](https://github.com/distribution/distribution/actions?query=workflow%3Aconformance) +[![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE) + +## Quick start + +Run the registry locally with the [default configuration](https://github.com/distribution/distribution/blob/main/cmd/registry/config-dev.yml): +``` +docker run -d -p 5000:5000 --restart always --name registry distribution/distribution:edge +``` + +*NOTE:* in order to run push/pull against the locally run registry you must allow +your docker (containerd) engine to use _insecure_ registry by editing `/etc/docker/daemon.json` and subsequently restarting it +``` +{ + "insecure-registries": ["host.docker.internal:5000"] +} +``` + +Now you are ready to use it: +``` +docker pull alpine +docker tag alpine localhost:5000/alpine +docker push localhost:5000/alpine +``` + +⚠️ Beware the default configuration uses [`filesystem` storage driver](https://github.com/distribution/distribution/blob/main/docs/storage-drivers/filesystem.md) +and the above example command does not mount a local filesystem volume into the running container. +If you wish to mount the local filesystem to the `rootdirectory` of the +`filesystem` storage driver run the following command: +``` +docker run -d -p 5000:5000 $PWD/FS/PATH:/var/lib/registry --restart always --name registry distribution/distribution:edge +``` + +### Custom configuration + +If you don't wan to use the default configuration file, you can supply +your own custom configuration file as follows: +``` +docker run -d -p 5000:5000 $PWD/PATH/TO/config.yml:/etc/docker/registry/config.yml --restart always --name registry distribution/distribution:edge +``` + +## Communication + +For async communication and long-running discussions please use issues and pull requests +on the [GitHub repo](https://github.com/distribution/distribution). + +For sync communication we have a #distribution channel in the [CNCF Slack](https://slack.cncf.io/) +that everyone is welcome to join and chat about development.