Giter Club home page Giter Club logo

docker-registry-ui's Introduction

πŸ“™ Some of my open source projects

Nginx Proxy Manager dnsrouter Juxtapose

All my Repos

πŸ”₯ Streak stats

Streak streak

πŸ“Š GitHub Profile Stats

My GitHub stats My most used languages

πŸ“Š Recent GitHub Activity

My recent GitHub activity


Made with ❀️ by Pius Walter and affectionately stolen by jc21

docker-registry-ui's People

Contributors

huapox avatar jamesdube avatar jc21 avatar xvmaatmat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-registry-ui's Issues

Error getaddrinfo EAI_AGAIN https https:80

Hello,

Running the following command :

docker run -e REGISTRY_HOST=https://docker.kube.unc.nc -p 8080:80 jc21/registry-ui 

I get the following error

WARNING: NODE_ENV value of 'production' did not match any deployment config file names.
WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode
WARNING: No configurations found in configuration directory:/app/config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
[9/7/2020] [12:51:50 AM] [Global  ] β€Ί β„Ή  info      PID 6 listening on port 80 ...
[9/7/2020] [12:51:50 AM] [Global  ] β€Ί β„Ή  info      Registry Host: https://docker.kube.unc.nc
[9/7/2020] [12:52:05 AM] [Express ] β€Ί ⚠  warning   Error: getaddrinfo EAI_AGAIN https https:80
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:58:26)

I don't understand this error. Any ideas ?

Deploy on rancher using route path based

This is awesome project, I have used it on my own server and work perfectly using subdomain.
I have a question, how to deploy this project on a server with "route path based"? Such as domain.com/registries

Basic Auth Error

With the latest versiΓ³n, when you use a registry that uses basic authentication, I receive the next error:
[4/19/2020] [8:03:15 PM] [Express ] β€Ί ⚠ warning Error: getaddrinfo ENOTFOUND USER User:443

For <registry_user> you see the real user name. After doing some research, right now the basic auth is doing by concatenating the user:pass inside the calling URL. Despite this could work, the restler parser is failing and takes the user as FQDN for the DNS.

My recommendation is to change how the options of restler are being generated and use the username and password parameters. Something like:

this.getUrlOptions = function (version) {
    let options = {
        headers: {
            'User-Agent': 'Docker Registry UI'
        },
        username = username,
        password = password
    };

    if (version === 2) {
        options.headers.Accept = 'application/vnd.docker.distribution.manifest.v2+json';
    }

    return options;
};

I tried to debug the solution but it fails with the table-ui so I cannot send you a pull request. Thanks!

How about use golang as the backend?

First this is awesome project, with lite useful and refreshing frontend.

And now it's with node for the backtend, as we can see the image's size at 165.72 MB in dockerhub alter compressed. and the runtime mem up to about 40Mb.

There is just about 3 apis between backtend and frontend, so come with a idea of changing the backtend to golang of implement. for lite image size(about 40Mb) and lower run memory(about 8Mb).

Error connecting to registry over HTTP

I'm running this UI in Kubernetes 1.10 connecting to our private registry in the same cluster and getting the below error.

WARNING: NODE_ENV value of 'production' did not match any deployment config file names.
WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode
2018-04-17T09:57:13.375Z - info: PID 6 listening on port 80 ...
2018-04-17T09:57:13.379Z - info: Registry Host: image-registry:5000
warn: Error: write EPROTO 139648476564296:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:825:
     at _errnoException (util.js:1031:13)
    at WriteWrap.afterWrite [as oncomplete] (net.js:873:14)
warn: Error: write EPROTO 139648476564296:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:825:
     at _errnoException (util.js:1031:13)
    at WriteWrap.afterWrite [as oncomplete] (net.js:873:14)

Our private registry is running with HTTP and I have successfully used this project to connect as a UI without issue https://github.com/snagles/docker-registry-manager

Below are the environment variables I'm using (excuse the Kubernetes syntax).

            containers:
            - name: image-registry-ui
              image: jc21/registry-ui
              env:
              - name: REGISTRY_HOST
                value: image-registry:5000
              - name: REGISTRY_SSL
                value: "false"
              - name: REGISTRY_STORAGE_DELETE_ENABLED
                value: "true"
              - name: REGISTRY_DOMAIN
                value: registry.example.com
              ports:
              - containerPort: 80
                name: http
                protocol: TCP

image detail page shown empty without any error

I've just deployed docker-registry-ui. I really like the simple way to deploy it and the lightweight UI. But at least for me, it's shown "very lightful" after clicking on an image-name. The front-page works fine showing my images very quick. The detail page only shows the pure layout but no body, content or error. Also browser console and network-debug tab shows no culprit.

The registry backend ist docker registry:2. Any idea what's wrong?

version: "3.7"

networks:
  default:
    external: true

volumes:
  cert-storage:
    name: php-stack-cert-storage
    driver: local
    driver_opts:
      type: none
      device: "$HOME/.local/share/mkcert"
      o: bind
  docker-registry-storage:
  docker-registry-config:

services:
  docker-registry:
    image: registry:2
    restart: on-failure
    hostname: registry-api.php-stack.docker
    ports:
      - "127.0.0.11:5000:5000/tcp"
    networks:
      - default
    environment:
      #REGISTRY_HTTP_ADDR: "0.0.0.0:5000"
      REGISTRY_HTTP_TLS_CERTIFICATE: "/certs/_wildcard.php-stack.docker.pem"
      REGISTRY_HTTP_TLS_KEY: "/certs/_wildcard.php-stack.docker-key.pem"
      REGISTRY_STORAGE_DELETE_ENABLED: true
    volumes:
      - "cert-storage:/certs"
      - "docker-registry-storage:/var/lib/registry"
      - "docker-registry-config:/etc/docker/registry"

  docker-registry-ui:
    image: jc21/registry-ui
    restart: on-failure
    depends_on:
      - docker-registry
    hostname: registry.php-stack.docker
    networks:
      - default
    environment:
      SUPPRESS_NO_CONFIG_WARNING: true
      REGISTRY_HOST: registry-api.php-stack.docker:5000
      REGISTRY_DOMAIN: registry-api.php-stack.docker:5000
      REGISTRY_SSL: true
      REGISTRY_STORAGE_DELETE_ENABLED: true
      #REGISTRY_USER:
      #REGISTRY_PASS:

Bug: Images with a / in the name do not work

An image of mine: home/homeassistant. This wont load because of the /.

I've looked trough the code but I'm not able to find the specific line which causes the error. It's a routing issue though.

arm64v8 image

I've created a arm64v8 image using multistage builds. Maybe you can add it in your Jenkins build and push it to the docker hub.

This is my docker build file:

FROM jc21/registry-ui as original

FROM arm64v8/node:alpine

RUN apk add --update --no-cache curl

ENV NODE_ENV=production

COPY --from=original /srv/app/dist                /srv/app/dist
COPY --from=original /srv/app/node_modules        /srv/app/node_modules
COPY --from=original /srv/app/LICENCE             /srv/app/LICENCE
COPY --from=original /srv/app/package.json        /srv/app/package.json
COPY --from=original /srv/app/src/backend         /srv/app/src/backend

WORKDIR /srv/app

CMD node --max_old_space_size=250 --abort_on_uncaught_exception src/backend/index.js

HEALTHCHECK --interval=15s --timeout=3s CMD curl -f http://localhost/ || exit 1

registry with htpasswd not accessible

Hi, Is possible to use docker secrets to pass REGISTRY_PASS ?

I got "Internal Error There may be a problem communicating with the Registry" when accessing from browser. registry-ui container can telnet to registry normally on port 5000

Here is my compose file

version: "3.2"

services:
    registry:
        image: registry:2
        ports:
          - 5000:5000
        secrets:
          - registry.crt
          - registry.key
          - registry.htpasswd
        environment:
          - REGISTRY_HTTP_SECRET=my-http-secret
          - REGISTRY_AUTH=htpasswd
          - REGISTRY_AUTH_HTPASSWD_PATH=/run/secrets/registry.htpasswd
          - REGISTRY_AUTH_HTPASSWD_REALM=RegistryRealm
          - REGISTRY_HTTP_TLS_CERTIFICATE=/run/secrets/registry.crt
          - REGISTRY_HTTP_TLS_KEY=/run/secrets/registry.key
        deploy:
            placement:
                constraints:
                    - node.role == worker
            mode: replicated
            replicas: 1
    ui:
        image: jc21/registry-ui
        ports:
          - 10081:80
        secrets:
          - registry.password
        environment:
          - REGISTRY_SSL=true
          - REGISTRY_HOST=registry:5000
          - REGISTRY_STORAGE_DELETE_ENABLED=true
          - REGISTRY_USER=admin
          - REGISTRY_PASS=/run/secrets/registry.password
        deploy:
            placement:
                constraints:
                    - node.role == worker
            mode: replicated
            replicas: 1
            
secrets:
    registry.crt:
        external: true
    registry.key:
        external: true
    registry.htpasswd:
        external: true
    registry.password:
        external: true

registry last log

time="2019-12-21T02:42:10.6238993Z" level=info msg="listening on [::]:5000, tls" go.version=go1.11.2 instance.id=8e8aab69-6d4d-4003-ba9c-79fc72f0aee4 service=registry version=v2.7.1 

docker-registry-ui log when accesing from browser

[12/21/2019] [2:43:19 AM] [Express ] β€Ί ⚠  warning Error: getaddrinfo ENOTFOUND admin admin:443  at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)

show images labels in detailed view

Because more and more docker images are built from CI/CD tools, it could be really useful to view image labels in images tab.
The labels can provide critical data like source git hash, build date, etc... , ex :

            "Labels": {
                "org.label-schema.build-date": "2019-05-09T16:39:25Z",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vcs-ref": "2103d7b6fac15ccf6df7ef9cd3661aa89ec94a0f",
                "org.label-schema.vcs-url": "https://git.xxx.fr/XXXXX/xxxxxx.git"
            }

Can't assign PORT without breaking HEALTHCHECK

Love the simplicity here. Chosen this over Portus and others, as i prefer slim.

let port = process.env.PORT || 80;

If I assign PORT to something, i see that node listens on that port in the container, but the container's HEALTHCHECK fails as it's looking at PORT 80

HEALTHCHECK --interval=15s --timeout=3s CMD curl -f http://localhost/ || exit 1

Json parse exception

I'm getting the following exception when browsing any docker image:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

I've set NODE_ENV to development but there are no logs about it. Could you provide a hint on how to get the logs spilled out in order to track the issue?

Thanks in advance!

Next release

Can we have a release with the fix for docker container names with dots in it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.