Через некоторое время я обнаружил, что есть два шага: вход в систему и обычное использование.
Поскольку в процессе установки есть серверы nginx и nexus, я могу сослаться наузел nexus как "nexus", а доступ только по http.Сертификат SSL разрешается в nginx с использованием обычной конфигурации nginx
Чтобы заставить вход в систему работать, важно перенаправить путь /v2/
в хранилище докеров.Это можно сделать с помощью nginx:
location /v2/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://nexus:10000;
proxy_read_timeout 90;
}
Обратите внимание, что предполагается, что конфигурация nexus для хранилища докеров прослушивает внутреннюю информацию через порт 10000 (http).С этой конфигурацией docker login
уже должен работать, но вы не можете извлечь какое-либо изображение.
Чтобы получить доступ к изображениям, важно переписать URI (пожалуйста, поместите эту конфигурацию поверх /v2/
конфигурация показана ранее):
location ~ /v2/repository/docker-repo1/(.*) {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://nexus:10000/v2/$1;
proxy_read_timeout 90;
}
И легко понять, что вы можете создать второй репозиторий, прослушивающий порт 10001, с конфигурацией:
location ~ /v2/repository/docker-repo2/(.*) {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://nexus:10001/v2/$1;
proxy_read_timeout 90;
}
И это сделано.
Помните, что важно поддерживать конфигурацию /v2/
(ту, что для входа в систему) после всех остальных или никогда не будет достигнута.
Я не уверен, что все требования относительно авторизациибудет работать как положено ... Я обновлю этот ответ, если у меня возникнут проблемы.