Итак, я потратил некоторое время, пытаясь настроить реестр контейнера для моего собственного сервера Gitlab. Мне повезло с точки зрения того, что Docker-контейнер работает на порту 5005 и отвечает на запросы, но каждый раз, когда я пытаюсь выполнить вход в Docker, происходит сбой.
Итак, настройка:
Сервер: Ubuntu 18.04 bionic
Версия Gitlab:
- GitLab:
12.4.0 (1425a56c75b)
OMNIBUS
- Оболочка GitLab:
10.2.0
- Рабочая лошадка GitLab:
8.14.0
- API GitLab:
v4
- Ruby:
2.6.3p62
- Rails:
5.2.3
gitlabНастройки .rb:
registry_external_url 'https://registry.<domain>.com'
### Settings used by GitLab application
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "registry.<domain>.com"
gitlab_rails['registry_port'] = "5005"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
### Settings used by Registry application
registry['enable'] = true
registry['username'] = "registry"
registry['group'] = "registry"
registry['uid'] = nil
registry['gid'] = nil
registry['dir'] = "/var/opt/gitlab/registry"
registry['registry_http_addr'] = "127.0.0.1:5005"
registry['debug_addr'] = "localhost:5001"
registry['log_directory'] = "/var/log/gitlab/registry"
registry['env_directory'] = "/opt/gitlab/etc/registry/env"
registry['env'] = {}
registry['log_level'] = "info"
registry['rootcertbundle'] = "/etc/gitlab/ssl/fullchain.pem"
registry['health_storagedriver_enabled'] = true
registry['storage_delete_enabled'] = true
Я использую собственную установку Nginx, а не предварительно упакованную версию от Gitlab, и использую предложенные настройки:
server {
if ($host = registry.<domain>.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen *:80;
server_name registry.<domain>.com;
server_tokens off;
return 301 https://$http_host$request_uri;
access_log /var/log/nginx/gitlab_registry_access.log;
error_log /var/log/nginx/gitlab_registry_error.log;
}
server {
listen *:443 ssl http2;
server_name registry.<domain>.com;
server_tokens off;
client_max_body_size 0;
chunked_transfer_encoding on;
access_log /var/log/gitlab/nginx/gitlab_registry_access.log;
error_log /var/log/gitlab/nginx/gitlab_registry_error.log;
location ^~ /.well-known/acme-challenge {
allow all;
alias /var/www/acme;
}
location / {
proxy_set_header Host $http_host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
proxy_pass http://localhost:5005;
}
ssl_certificate /etc/letsencrypt/live/registry.<domain>.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/registry.<domain>.com/privkey.pem; # managed by Certbot
}
Теперь каждый раз, когда я делаю следующеекоманда: docker login registry.<domain>.com
это просто дает мне следующий ответ:
Error response from daemon: Get https://registry.<domain>.com/v2/: unauthorized: HTTP Basic: Access denied
Пример вывода из /var/log/gitlab/nginx/gitlab_registry_error.log
2019/11/04 12:36:16 [error] 30957#30957: *92 no live upstreams while connecting to upstream, client: <personal_ip>, server: registry.<domain>.com, request: "GET /v2/ HTTP/1.1", upstream: "http://localhost/v2/", host: "registry.<domain>.com"
2019/11/04 12:52:33 [error] 30957#30957: *320 connect() failed (111: Connection refused) while connecting to upstream, client: <server_ip>, server: registry.<domain>.com, request: "GET /v2/ HTTP/1.1", upstream: "http://127.0.0.1:5005/v2/", host: "registry.<domain>.com"
2019/11/04 12:52:33 [error] 30957#30957: *320 connect() failed (111: Connection refused) while connecting to upstream, client: <server_ip>, server: registry.<domain>.com, request: "GET /v2/ HTTP/1.1", upstream: "http://127.0.0.1:5005/v2/", host: "registry.<domain>.com"
2019/11/04 12:52:33 [error] 30957#30957: *320 connect() failed (111: Connection refused) while connecting to upstream, client: <server_ip>, server: registry.<domain>.com, request: "GET /v2/ HTTP/1.1", upstream: "http://127.0.0.1:5005/v2/", host: "registry.<domain>.com"
2019/11/04 12:52:33 [error] 30957#30957: *324 no live upstreams while connecting to upstream, client: <server_ip>, server: registry.<domain>.com, request: "GET /v2/ HTTP/1.1", upstream: "http://localhost/v2/", host: "registry.<domain>.com"
Я не совсем уверен, что следующие шаги, Я безостановочно гуглял, но реальных ответов нет, и большинство обнаруженных мной проблем связано с бегунами-гитарами.
Любая помощьБуду очень признателен, я просто хочу знать, есть ли что-то не так с моими настройками, я вижу что-то связанное с connect () в выходном журнале, но я просто не уверен, что мне не хватает или как исправить журнал, поэтомуесли кто-то может указать мне правильное направление, был бы признателен.