Частный Docker-реестр с GitLab - PullRequest
       51

Частный Docker-реестр с GitLab

0 голосов
/ 10 января 2019

Я хочу иметь GitLab-Registry (https://docs.gitlab.com/ee/administration/container_registry.html). Это Docker-Registry, и GitLab будет обрабатывать аутентификацию.

Моя проблема в том, что он не работает, и я понятия не имею, что делать.

Мой Registry-Container запускается так:

 sudo docker run -d \
 -e REGISTRY_LOG_LEVEL=debug \
 -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/registry \
 -e REGISTRY_AUTH_TOKEN_REALM=https://gitlab.***.com/jwt/auth \
 -e REGISTRY_AUTH_TOKEN_SERVICE=container_registry \
 -e REGISTRY_AUTH_TOKEN_ISSUER=gitlab-issuer \
 -e REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE=/root/certs/registry.pub \
 -e REGISTRY_AUTH_TOKEN_AUTOREDIRECT=true \
 -v /home/git/gitlab/ssl/:/root/certs/ \
 -p 5000:5000 --name registry registry:2

Моя конфигурация GitLab выглядит следующим образом (GitLab не работает в Docker-контейнере и устанавливается из источника):

registry:
    enabled: true
    host: registry.***.com
    port: 443
    api_url: https://registry.***.com/ 
    cert: /home/git/gitlab/ssl/registry.pub
    key: /home/git/gitlab/ssl/registry.priv
    #path: /path/data
    issuer: gitlab-issuer

Когда я хочу войти с помощью

docker login registry.***.com:443

возвращает следующее:

Error response from daemon: Get https://registry.***.com/v2/: error parsing HTTP 404 response body: invalid character 'p' after top-level     value: "404 page not found\n"

журналы докера registry возвращает:

GET /auth/token?    account=****&client_id=docker&offline_token=true&service=container_registry HTTP/1.0 404

Я что-то пропустил или что-то не так?

1 Ответ

0 голосов
/ 16 января 2019

Решением этой проблемы было установить REGISTRY_AUTH_TOKEN_AUTOREDIRECT на false. Затем реестр вернул правильный URL.

На данный момент параметр REGISTRY_AUTH_TOKEN_AUTOREDIRECT не задокументирован.

...