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
. 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
docker login
You can log into the registry as follows:
docker login registry.scontain.com
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
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/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
andread_registry
and - 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/sconecuratedimages/apps |
17 | registry.scontain.com/sconecuratedimages/crosscompilers |
67 | registry.scontain.com/sconecuratedimages/dapps |
10 | registry.scontain.com/sconecuratedimages/mono |
26 | registry.scontain.com/sconecuratedimages/node |
23 | registry.scontain.com/sconecuratedimages/python |
21 | registry.scontain.com/sconecuratedimages/sconecli |
20 | registry.scontain.com/sconecuratedimages/services |