Skip to content

Scontain Image Registry

Since we ran into rate limitation issues with Docker hub, we needed to move to a new container image registry: registry.scontain.com:5050. You can register a free account at https://gitlab.scontain.com/users/sign_up (see also below).

For new users: Please register an account

Please register a free account at https://gitlab.scontain.com/users/sign_up.

You need to confirm your email and, we will grant you - typically within a few hours - access to the community edition.

Create an access token

After you registered an account, you can create an access token for docker login as follows:

You can create a https://gitlab.scontain.com/-/profile/personal_access_tokens by

  • selecting a name of the token, e.g., docker_token
  • selecting scope read_registry and then
  • pressing button create personal access token.

Copy your new access token and use this for your docker login (see below)

For more information, please read this gitlab docu

Screenshot

SCONE Register Access Token

docker login

You can log into the registry as follows:

docker login registry.scontain.com:5050

using your

  • your ID as username, and
  • your access token as password.

docker pull

When you execute a docker pull, you now need to specify the registry registry.scontain.com:5050 in each pull request.

Instead of pulling the image sconecuratedimages/crosscompilers:alpine like this:

docker pull sconecuratedimages/crosscompilers:alpine

you now need to pull this image like this:

docker pull registry.scontain.com:5050/sconecuratedimages/crosscompilers:alpine

Password Reset

To reset your password, please visit https://gitlab.scontain.com/users/password/new

If you do not remember your email address or your login: You should have gotten an email regarding this and, you need to reset the password because you are given a random password.

You should have the same access rights as previously. If not, please let us know.

Searching for Container Images

One disadvantage of our registry is that finding images and tags using the GUI is not very comfortable. The advantage of the registry is, however, that it has an [API] (https://docs.gitlab.com/ee/api/container_registry.html) that one can use to automate the searches. We show how to use this API.

API Token

Create an API Token at https://gitlab.scontain.com/-/profile/personal_access_tokens by

  • selecting a name of the token, e.g., api_token
  • selecting scope read_api and read_registryand
  • pressing button create personal access token.

Say, you store this token in an environment variable SCONE_HUB_ACCESS_TOKEN, i.e.,

export SCONE_HUB_ACCESS_TOKEN=`YOUR-API-TOKEN-HERE`

Project IDs

Each image repository is associated with a project and each project has a unique project ID. To find the project ID for a image repository, let's say you want to find the project ID for a repo crosscompiler, you could do this as follows:

export REPO=crosscompiler
curl -s -H "PRIVATE-TOKEN: $SCONE_HUB_ACCESS_TOKEN" "https://gitlab.scontain.com/api/v4/projects?search=$REPO" | jq '.[].id,.[].name'

This would output something like

17
"crosscompilers"

saying that 17 is the project ID of repo sconecuratedimages/crosscompilers. You could now set the project ID and list all image tags of this repo:

export PROJECT_ID=$(curl -s -H "PRIVATE-TOKEN: $SCONE_HUB_ACCESS_TOKEN" "https://gitlab.scontain.com/api/v4/projects?search=$REPO" | jq '.[].id')
curl -s -H "PRIVATE-TOKEN: $SCONE_HUB_ACCESS_TOKEN" "https://gitlab.scontain.com/api/v4/projects/$PROJECT_ID/registry/repositories?tags=1" | jq '.[].tags[].name'

This will output many tags like

"alpine"
"alpine-scone1"
"alpine-scone1.0"
"alpine-scone1.0.0"
"alpine-scone1.0.1"
"alpine-scone2"
...

Now you can use the command line to search for the tags that you are interested in. Say, you want to search for all tags of SCONE version 3.5.0. In this case, you could define a patter scone5.3.0 and filter the output as follows:

export PATTERN="scone5.3.0"
curl -s -H "PRIVATE-TOKEN: $SCONE_HUB_ACCESS_TOKEN" "https://gitlab.scontain.com/api/v4/projects/$PROJECT_ID/registry/repositories?tags=1" | jq '.[].tags[].name' | grep "$PATTERN"

The output might look as follows:

"alpine-scone5.3.0"
"alpine3.7-scone5.3.0"
"latest-scone5.3.0"
"pkg-builder-alpine-3.11-scone5.3.0"
"pkg-builder-alpine-scone5.3.0"
"runtime-alpine-scone5.3.0"
"runtime-alpine3.7-scone5.3.0"
"runtime-scone5.3.0"
"ubuntu-scone5.3.0"
"ubuntu16.04-scone5.3.0"
"ubuntu18.04-scone5.3.0"

Common Project IDs

To simplify the search for tags, here are some common project IDs.

Project ID Repo Name
15 registry.scontain.com:5050/sconecuratedimages/apps
17 registry.scontain.com:5050/sconecuratedimages/crosscompilers
67 registry.scontain.com:5050/sconecuratedimages/dapps
10 registry.scontain.com:5050/sconecuratedimages/mono
26 registry.scontain.com:5050/sconecuratedimages/node
23 registry.scontain.com:5050/sconecuratedimages/python
21 registry.scontain.com:5050/sconecuratedimages/sconecli
20 registry.scontain.com:5050/sconecuratedimages/services