2016-11-25 11 views
0

Я работает докер с Docker реестра на example.domain.comустановка gitlab с ошибкой докер реестра 500

docker run -d -p 5000:5000 --restart=always --name registry \ 
-v /etc/ssl/certs/:/certs \ 
-e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry \ 
-v /git/docker_registry:/var/lib/registry \ 
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \ 
-e REGISTRY_HTTP_TLS_KEY=/certs/server.key \ 
registry:2 

я могу толкать и тянуть к этому Docker реестра, но когда я пытаюсь соединить его с gitlab, который работает на том же машина example.domain.com с помощью gitlab.yml конфигурации:

registry: 
    enabled: true 
    host: example.domain.com 
    port: 5005 
    api_url: http://localhost:5000/ 
    key: /etc/ssl/certs/server.key 
    path: /git/docker_registry 

в веб-браузере позволяет Docker реестра на проекте работает нормально, но когда я иду на страницу проекта и открытой Regisry page я получаю ошибку 500

журналы Gitlab показывает:

Started POST "/api/v3/internal/allowed" for 10.10.200.96 at 2016-11-25 10:15:01 +0100 
Started POST "/api/v3/internal/allowed" for 10.10.200.96 at 2016-11-25 10:15:01 +0100 
Started POST "/api/v3/internal/allowed" for 10.10.200.96 at 2016-11-25 10:15:01 +0100 
Started GET "/data-access-servicess/centipede-rest/container_registry" for 10.11.0.232 at 2016-11-25 10:15:01 +0100 
Processing by Projects::ContainerRegistryController#index as HTML 
    Parameters: {"namespace_id"=>"data-access-servicess", "project_id"=>"centipede-rest"} 
Completed 500 Internal Server Error in 195ms (ActiveRecord: 25.9ms) 

Faraday::ConnectionFailed (wrong status line: "\x15\x03\x01\x00\x02\x02"): 
    lib/container_registry/client.rb:19:in `repository_tags' 
    lib/container_registry/repository.rb:22:in `manifest' 
    lib/container_registry/repository.rb:31:in `tags' 
    app/controllers/projects/container_registry_controller.rb:8:in `index' 
    lib/gitlab/request_profiler/middleware.rb:15:in `call' 
    lib/gitlab/middleware/go.rb:16:in `call' 

и журнал Docker реестра:

2016/11/25 09:15:01 http: TLS handshake error from 172.17.0.1:44608: tls: first record does not look like a TLS handshake 
+0

ли настроить Nginx обратный прокси-сервер в передней части реестра, как подробно описано в инструкции: https://gitlab.com/help/administration/container_registry.md конфигурации здесь: https: // gitlab. com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/registry-ssl – jaxxstorm

+0

К сожалению, мы используем стек Gitlab Bitnami, и он запускает Apache. Это то место, где im полностью потеряно, как настройка nginx (если он запускает gitlab или его просто прокси для реестра?) – Martin

ответ

0

Проблема заключается в том, что gitlab пытается подключиться к реестру через HTTP и не HTTPS. Следовательно, вы получаете ошибку установления связи TLS.

Изменение gitlab конфигурации из

registry: 
    api_url: http://localhost:5000/ 

в

registry: 
    api_url: https://localhost:5000/ 

Если вы используете самозаверяющий сертификат, не забудьте доверять его на машине, где установлен gitlab. Смотрите ->https://docs.docker.com/registry/insecure/#troubleshooting-insecure-registry