Частный Docker-реестр с GitLab
Я хочу иметь 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 ответ
Решение
Решением этой проблемы было установить REGISTRY_AUTH_TOKEN_AUTOREDIRECT
в false
, Затем реестр вернул правильный URL.
На данный момент REGISTRY_AUTH_TOKEN_AUTOREDIRECT
параметр не задокументирован.