diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3bd934e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +# +# This is the integrated OpenShift Origin Docker registry. It is configured to +# publish metadata to OpenShift to provide automatic management of images on push. +# +# The standard name for this image is openshift/origin-docker-registry +# +FROM registry.fedoraproject.org/f29/origin-base:latest + +ENV NAME=origin-docker-registry \ + VERSION=3.11 \ + ARCH=x86_64 + +RUN INSTALL_PKGS="origin-dockerregistry" && \ + dnf install -y ${INSTALL_PKGS} && \ + rpm -V ${INSTALL_PKGS} && \ + dnf clean all + +COPY config.yml ${REGISTRY_CONFIGURATION_PATH} + +LABEL io.k8s.display-name="OpenShift Container Platform Image Registry" \ + io.k8s.description="This is a component of OpenShift Container Platform and exposes a Docker registry that is integrated with the cluster for authentication and management." \ + io.openshift.tags="openshift,docker,registry" \ + summary="This is a component of OpenShift Container Platform and exposes a Docker registry that is integrated with the cluster for authentication and management." \ + maintainer="Jakub Cajka " \ + License="GPLv2+" \ + name="$FGC/$NAME" \ + com.redhat.component="$NAME" \ + version="$VERSION" \ + architecture="$ARCH" \ + usage="This is a component of OpenShift Container Platform and exposes a Docker registry that is integrated with the cluster for authentication and management." + +COPY README.md README.md + +# The registry doesn't require a root user. +USER 1001 +EXPOSE 5000 +VOLUME /registry +ENV REGISTRY_CONFIGURATION_PATH=/config.yml + +CMD /usr/bin/dockerregistry ${REGISTRY_CONFIGURATION_PATH} diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..ec46611 --- /dev/null +++ b/config.yml @@ -0,0 +1,56 @@ +version: 0.1 +log: + level: debug +http: + addr: :5000 +storage: + cache: + blobdescriptor: inmemory + filesystem: + rootdirectory: /registry + delete: + enabled: true +auth: + openshift: {} +openshift: + version: 1.0 + auth: + realm: openshift + # tokenrealm is a base URL to use for the token-granting registry endpoint. + # If unspecified, the scheme and host for the token redirect are determined from the incoming request. + # If specified, a scheme and host must be chosen that all registry clients can resolve and access: + # + # tokenrealm: https://example.com:5000 + audit: + enabled: false + metrics: + enabled: false + # secret is used to authenticate to metrics endpoint. It cannot be empty. + # Attention! A weak secret can lead to the leakage of private data. + # + # secret: TopSecretLongToken + requests: + # GET and HEAD requests + read: + # maxrunning is a limit for the number of in-flight requests. A zero value means there is no limit. + maxrunning: 0 + # maxinqueue sets the maximum number of requests that can be queued if the limit for the number of in-flight requests is reached. + maxinqueue: 0 + # maxwaitinqueue is how long a request can wait in the queue. A zero value means it can wait forever. + maxwaitinqueue: 0 + # PUT, PATCH, POST, DELETE requests and internal mirroring requests + write: + # See description of openshift.requests.read. + maxrunning: 0 + maxinqueue: 0 + maxwaitinqueue: 0 + quota: + enabled: false + cachettl: 1m + cache: + blobrepositoryttl: 10m + pullthrough: + enabled: true + mirror: true + compatibility: + acceptschema2: true