Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description

Overview

The purpose of this project is to provide the docker masses with an authenticated docker index for their own docker registry that has real repository access controls instead of just using htaccess on a reverse proxy.

While I don't have any problems using this software, I cannot say that it is 100% without bug or will work with anyone, I know some people have downloaded the project, but I haven received zero feedback as to functionality.

Known to work with registry version 0.7.x and 0.8.x

This is a functioning Docker Index that can be run independent of the Docker Registry software.

Features

  • Access Controls Per Namespace or Repo
  • Webhooks (For New Images and All Image Pushes)
    • Can be disabled
    • History is kept, but can be disabled
  • Internal API to Facilitate Management of the Index
  • Command Line Tool to simplify the management of the Index
  • Account Registration by just doing a docker login (can be disabled)
    • New accounts can also be disabled by default

Installation

Check out the Installation Document

Configuration

Check out the Configuration Document

API Documentation

API Docs Coming Soon

Management / CLI Tool

To facilitate working with the docker-index more easily, there is a command line tool available. https://github.com/ekristen/docker-index-cli

All management is done via the new command line tool over at https://github.com/ekristen/docker-index-cli

Docker Pull Command
Owner
ekristen
Source Repository

Comments (2)
afengisme
2 years ago

hi, I used redis + docker-index + docker-registry(0.9.0) + docker-index-nginx(front end)
After all containers created and started up successfully:

docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a48c7e0206e4 registry:0.9.0 "docker-registry" 2 weeks ago Up 2 weeks 0.0.0.0:5000->5000/tcp docker-registry
9aa812e31a16 docker-index-nginx:latest "bash /run.sh" 2 weeks ago Up 2 weeks 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx
f8a5d9ef6de6 ekristen/docker-index:1.4.0-rc1 "node app.js" 2 weeks ago Up 2 weeks 0.0.0.0:5100->5100/tcp docker-index
b4641c0d94cc dockerfile/redis:latest "redis-server /etc/r 2 weeks ago Up 2 weeks 6379/tcp index_redis

I tried to login it:

docker login http://xxxx.xxx.com
Username: admin
Password:
Email: xxxx
FATA[0011] Error response from daemon:

actually , I did not know the initial admin password. I input some charactors randomly, obviously it was failed.

then , I saw this as below in readme.md of docker-index:

####
Other Information
Initial Admin Account

When you start the docker index application for the first time, a first run text will be displayed to standard out. This text will contain the randomly set password for the default admin account.

#####

but , when I created and started up the docker-index container, I did not find the "text" except the container ID on std out:

docker run -d --name="docker-index" -p 5100:5100 -e REGISTRIES=xxxx.xxxx.com --link index_redis:redis ekristen/docker-index:1.4.0-rc1
f8a5d9ef6de622f289fdf7ced1e5e2312200a7e5cea39194b1889cf4316abc54

Anyone ever encountered this issue ? or who can help me ?

thanks a lot.

tiaguin12342
3 years ago

Hello. I am trying this,
but I couldnt make it work yet :(
I have many comments/questions for you:
1 - How shall I do to make code go through http value in the if, for example: /usr/lib/node_modules/docker-index-cli/lib/commands/list_users.js
var protocol = (options.http == true) ? 'http' : 'https';
I had to hardcode a workaroud to make it work with http adding:
protocol = 'http';
2 - Comment: getUser throws error when check
if (typeof(dockercfg[index]) == “undefined” || typeof(dockercfg[index].auth) == “undefined”)
since dockercfg is undefined.
3 - Question: does it work without a nginx layer, only with http?
I get error when I try to push to my registry and I login only with http “docker login dockerr:5100”
HTTP code 401, Docker will not send auth headers over HTTP.
4 - Question: if I use nginx as front-end of index and registry,
I get the error about certificate:
Invalid Registry endpoint: Get https://dockerr/v1/_ping: x509: certificate is valid for *.private.io, not dockerr
How should I do to make it work with nginx layer?

Following is the fig file I use to start containers:

redis:
name: redis
image: dockerfile/redis
ports:

- 26379:6379

volumes:

- /data/redis:/registry/data

registry:
name: registry
image: ekristen/docker-index-registry:0.9.0
ports:

- 5000:5000

environment:

- DEBUG=true
- STANDALONE=false
- LOGLEVEL=debug
- DISABLE_TOKEN_AUTH=false
- SETTINGS_FLAVOR=local

- INDEX_ENDPOINT=https://dockerr

- STORAGE_PATH=/registry

volumes:

- /data/registry:/registry

index:

#build: .
name: index
image: ekristen/docker-index:1.4.0-rc1
ports:

- 5100:5100

environment:

- NODE_TLS_REJECT_UNAUTHORIZED=0
- REGISTRIES=dockerr:5000
- DISABLE_NEW_ACCOUNTS=true
- NODE_ENV=docker
- LOG_LEVEL=debug
- REGISTRY_PROTOCOL=http

links:

- redis:redis

nginx:
name: nginx
image: ekristen/docker-index-nginx
environment:

- INDEX_HOSTNAME=dockerr
- REGISTRY_HOSTNAME=dockerr

ports:

- 80:80
- 443:443

links:

- registry:registry
- index:index

Thanks a lot for the help.