Skip to content

Pushed images do not appear in Harbor Web UI or API #22641

@FenderJPMG70mt

Description

@FenderJPMG70mt

Description

I am experiencing an issue where I can push Docker images to Harbor successfully, but the images do not appear in the Web UI or via the API. However, pulling the images from another machine works correctly.

Steps to Reproduce

  1. Configure Harbor with external Nginx reverse proxy.
  2. Push an image to a new project:

my bash

chensiyu@homeappserver:~$ docker push harbor.fenderjpmg70mt.top/library/prom/node-exporter
Using default tag: latest
The push refers to repository [harbor.fenderjpmg70mt.top/library/prom/node-exporter]
4a198d6ad47e: Pushed
6b83872188a9: Pushed
1e604deea57d: Pushed
latest: digest: sha256:7bcf2839f207d926b908cd3c566c9f1577efb72268062be0c96cd3b17a5cb283 size: 949
chensiyu@homeappserver:~$ docker push harbor.fenderjpmg70mt.top/library/prom/prometheus
Using default tag: latest
The push refers to repository [harbor.fenderjpmg70mt.top/library/prom/prometheus]
10ce25819aa8: Pushed
93175486f8fc: Pushed
271df638cc01: Pushed
ed91738d6ff4: Pushed
f0678d9c4b60: Pushed
c23f85ccf0af: Pushed
e1f713bdc2a1: Pushed
ed44c73720da: Pushed
6b83872188a9: Mounted from library/prom/node-exporter
1e604deea57d: Mounted from library/prom/node-exporter
latest: digest: sha256:67abe619da66a6b14cc0e185205f93a29d5b03cedd1aaa06930745b21f95a374 size: 2407
chensiyu@homeappserver:~$ docker push harbor.fenderjpmg70mt.top/library/grafana/grafana
Using default tag: latest
The push refers to repository [harbor.fenderjpmg70mt.top/library/grafana/grafana]
6fe611e71082: Pushed
f92310eccf4a: Pushed
dbd6ca84c41a: Pushed
0d36e295e708: Pushed
9b6b256566d5: Pushed
a50829dc88aa: Pushed
9a06646f1411: Pushed
e20e299b0561: Pushed
09132f7bb784: Pushed
256f393e029f: Pushed
latest: digest: sha256:793c8719b0043ed885d1e75200a62d8adf63f0eae00f6f12b7a98eb7293a525c size: 2417
chensiyu@homeappserver:~$ cd /work/service/harbor/
chensiyu@homeappserver:/work/service/harbor$ ll

Check the Web UI for the project → image not listed.

Query the API:

chensiyu@homeappserver:/work/service/harbor$ curl -u chensiyu:.  https://harbor.fenderjpmg70mt.top/api/v2.0/projects/
[{"creation_time":"2025-12-04T06:54:22.375Z","current_user_role_ids":null,"cve_allowlist":{"creation_time":"0001-01-01T00:00:00.000Z","id":1,"items":[],"project_id":1,"update_time":"0001-01-01T00:00:00.000Z"},"metadata":{"public":"true"},"name":"library","owner_id":1,"owner_name":"admin","project_id":1,"repo_count":1,"update_time":"2025-12-04T06:54:22.375Z"},{"creation_time":"2025-12-15T09:17:40.133Z","current_user_role_id":1,"current_user_role_ids":[1],"cve_allowlist":{"creation_time":"0001-01-01T00:00:00.000Z","id":2,"items":[],"project_id":2,"update_time":"0001-01-01T00:00:00.000Z"},"metadata":{"public":"true"},"name":"local_mirror","owner_id":3,"owner_name":"chensiyu","project_id":2,"repo_count":0,"update_time":"2025-12-15T09:17:40.133Z"}]
chensiyu@homeappserver:/work/service/harbor$ curl -u chensiyu:.  https://harbor.fenderjpmg70mt.top/api/v2.0/projects/local_mirror
{"creation_time":"2025-12-15T09:17:40.133Z","current_user_role_id":1,"current_user_role_ids":[1],"cve_allowlist":{"creation_time":"0001-01-01T00:00:00.000Z","id":2,"items":[],"project_id":2,"update_time":"0001-01-01T00:00:00.000Z"},"metadata":{"public":"true"},"name":"local_mirror","owner_id":3,"owner_name":"chensiyu","project_id":2,"repo_count":0,"update_time":"2025-12-15T09:17:40.133Z"}
chensiyu@homeappserver:/work/service/harbor$ curl -u chensiyu:.  https://harbor.fenderjpmg70mt.top/api/v2.0/projects/local_mirror/
{"creation_time":"2025-12-15T09:17:40.133Z","current_user_role_id":1,"current_user_role_ids":[1],"cve_allowlist":{"creation_time":"0001-01-01T00:00:00.000Z","id":2,"items":[],"project_id":2,"update_time":"0001-01-01T00:00:00.000Z"},"metadata":{"public":"true"},"name":"local_mirror","owner_id":3,"owner_name":"chensiyu","project_id":2,"repo_count":0,"update_time":"2025-12-15T09:17:40.133Z"}
chensiyu@homeappserver:/work/service/harbor$ curl -u chensiyu:.  https://harbor.fenderjpmg70mt.top/api/v2.0/projects/library/repositories
[{"artifact_count":1,"creation_time":"2025-12-04T07:27:52.705Z","id":1,"name":"library/lejianwen/rustdesk-api","project_id":1,"pull_count":1,"update_time":"2025-12-04T07:54:05.556Z"}]
chensiyu@homeappserver:/work/service/harbor$ curl -u chensiyu:.  https://harbor.fenderjpmg70mt.top/api/v2.0/projects/local_mirror/repositories
[]

→ Returns empty list [] (except for previously existing images).

Pull the image from another machine → works fine.

Environment

Harbor version: [e.g., v2.14.1-f1393edc]
root@homeappserver:/work/service/harbor# cat /etc/nginx/conf.d/harbor.conf

upstream harbor_core {
    server 127.0.0.1:8080;      # Harbor Core + Portal
}

upstream harbor_registry {
    server 127.0.0.1:5000;      # Harbor Registry
}

server {
    listen 443 ssl http2;
    server_name harbor.fenderjpmg70mt.top;

    ssl_certificate /home/chensiyu/.acme.sh/harbor.fenderjpmg70mt.top/fullchain.cer;
    ssl_certificate_key /home/chensiyu/.acme.sh/harbor.fenderjpmg70mt.top/harbor.fenderjpmg70mt.top.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 0;


    location / {
        proxy_pass http://harbor_core/;
        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;
    }

    location /api/ {
        proxy_pass http://harbor_core;
        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;
    }

    location /service/ {
        proxy_pass http://harbor_core/;
        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;
    }

    # Harbor Registry v2
    location /v2/ {
        proxy_pass http://harbor_registry;
            #proxy_pass http://harbor_core;
        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_set_header Authorization $http_authorization;   # <
    }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions