Nexus3:一键多克集团回购

问题描述 投票:3回答:2

我有Nexusv3.6并创建了一个码头工人回购docker-repo(类型:托管)和泊坞组docker-group(类型:组)。对于这两个我启用了HTTPS连接器:enter image description here

docker-repo港口8101docker-group港口8102

我加docker-repodocker-group

现在,我能够从docker-repo直接推/拉的图像/像:

docker push myhost.com:8101/mymimage:latest

但是,当我试图推到这样的组:

docker push myhost.com:8102/docker-repo/mymimage:latest

我得到一个错误说:error parsing HTTP 404 response body: invalid character '<' looking for beginning of value

任何的想法在这里出了什么问题?

docker nexus docker-registry
2个回答
5
投票

我解决了这个问题,NGINX如下:更新。

在以下示例中,“库/搬运工”是组合搬运工代理和搬运工托管库的基团。

所有HEAD *和GET请求被代理到泊坞窗库组(托管+代理)。所有的“改变”请求直接代理到泊坞窗托管库。 *一个例外。 HEAD /v2/.../blobs/应该被代理到托管回购,因为它推垢托管回购之前打来电话,我们要检查的BLOB存在于托管回购。否则,我们得到一个错误:blob unknown: blob unknown to registry

    server {
        listen   *:443 default_server ssl;

.........................

        location ~ ^/(v1|v2)/[^/]+/?[^/]+/blobs/ {
            if ($request_method ~* (POST|PUT|DELETE|PATCH|HEAD) ) {
                rewrite ^/(.*)$ /repository/docker-hosted/$1 last;
            }
            rewrite ^/(.*)$ /repository/docker/$1 last;
        }

        location ~ ^/(v1|v2)/ {
            if ($request_method ~* (POST|PUT|DELETE|PATCH) ) {
                rewrite ^/(.*)$ /repository/docker-hosted/$1 last;
            }
            rewrite ^/(.*)$ /repository/docker/$1 last;
        }

        location / {
            proxy_pass http://nexus:8081/;
            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 "https";
        }
    }

您可以验证通过运行设置:

# pull via proxy
docker pull nexus.your.domain/ubuntu

# push to the hosted repository
docker push nexus.your.domain/ubuntu

3
投票

根据官方documentation about repository groups for docker

存储库组是揭露读访问到用户的所有存储库的推荐方式。

并且,从约pushing images in private registries文档

你不能推到资源库群或代理库。

© www.soinside.com 2019 - 2024. All rights reserved.