Actions
Issue #6884
closedDocker push fails when pushing label with dot
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Sprint 74
Quarter:
Description
Steps to reproduce.
- Deploy pulp-container.
- Create appropriate repository and distribution (e.g.
python
). - Push image to registry.
docker push ${REGISTRY_URL}/python:3.7
Expected behaviour:
Image is pushed successfully.
Actual behavior:
% docker push localhost:5001/python:3.7-alpine
The push refers to repository [localhost:5001/python]
0928cd2e6851: Layer already exists
0e59b5280255: Layer already exists
17a1596d52d8: Layer already exists
61b675163d2a: Layer already exists
5216338b40a7: Layer already exists
error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n <title>Page not found at /v2/python/manifests/3.7-alpine</title>\n <meta name=\"robots\" content=\"NONE,NOARCHIVE\">\n <style type=\"text/css\">\n html * { padding:0; margin:0; }\n body * { padding:10px 20px; }\n body * * { padding:0; }\n body { font:small sans-serif; background:#eee; color:#000; }\n body>div { border-bottom:1px solid #ddd; }\n h1 { font-weight:normal; margin-bottom:.4em; }\n h1 span { font-size:60%; color:#666; font-weight:normal; }\n table { border:none; border-collapse: collapse; width:100%; }\n td, th { vertical-align:top; padding:2px 3px; }\n th { width:12em; text-align:right; color:#666; padding-right:.5em; }\n #info { background:#f6f6f6; }\n #info ol { margin: 0.5em 4em; }\n #info ol li { font-family: monospace; }\n #summary { background: #ffc; }\n #explanation { background:#eee; border-bottom: 0px none; }\n </style>\n</head>\n<body>\n <div id=\"summary\">\n <h1>Page not found <span>(404)</span></h1>\n <table class=\"meta\">\n <tr>\n <th>Request Method:</th>\n <td>PUT</td>\n </tr>\n <tr>\n <th>Request URL:</th>\n <td>http://localhost:5001/v2/python/manifests/3.7-alpine</td>\n </tr>\n \n </table>\n </div>\n <div id=\"info\">\n \n <p>\n Using the URLconf defined in <code>pulpcore.app.urls</code>,\n Django tried these URL patterns, in this order:\n </p>\n <ol>\n \n <li>\n \n ^pulp/api/v3/status/\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/orphans/\n \n \n </li>\n \n <li>\n \n ^auth/\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/docs/api(?P<format>\\.json|\\.yaml)\n [name='schema-json']\n \n </li>\n \n <li>\n \n ^pulp/api/v3/docs/\n [name='schema-redoc']\n \n </li>\n \n <li>\n \n ^pulp/api/v3/$\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/\n \n \n </li>\n \n <li>\n \n ^pulp/api/v3/\n \n \n </li>\n \n <li>\n \n \n \n \n ansible/collections/\n \n \n </li>\n \n <li>\n \n \n \n \n pulp_ansible/galaxy/<path:path>/api/\n \n \n </li>\n \n <li>\n \n \n \n \n pulp_ansible/galaxy/<path:path>/api/v1/\n \n \n </li>\n \n <li>\n \n \n \n \n pulp_ansible/galaxy/<path:path>/api/v2/\n \n \n </li>\n \n <li>\n \n \n \n \n pulp_ansible/galaxy/<path:path>/api/v3/\n \n \n </li>\n \n <li>\n \n \n \n \n \n \n \n ^$\n \n \n </li>\n \n <li>\n \n \n \n \n api/automation-hub/\n \n \n </li>\n \n <li>\n \n \n \n \n \n \n \n ^metrics$\n [name='prometheus-django-metrics']\n \n </li>\n \n <li>\n \n \n \n \n ^v2/$\n \n \n </li>\n \n <li>\n \n \n \n \n \n \n \n ^^v2/(?P<path>.+)/blobs/uploads\\/?$\n [name='docker-upload-list']\n \n </li>\n \n <li>\n \n \n \n \n \n \n \n ^^v2/(?P<path>.+)/blobs/uploads\\/?/(?P<pk>[^/.]+)$\n [name='docker-upload-detail']\n \n </li>\n \n <li>\n \n \n \n \n \n \n \n ^^v2/(?P<path>.+)/blobs/(?P<pk>[^/.]+)$\n [name='blobs-detail']\n \n </li>\n \n <li>\n \n \n \n \n \n \n \n ^^v2/(?P<path>.+)/manifests/(?P<pk>[^/.]+)$\n [name='manifests-detail']\n \n </li>\n \n </ol>\n <p>\n \n The current path, <code>v2/python/manifests/3.7-alpine</code>, didn't match any of these.\n </p>\n \n </div>\n\n <div id=\"explanation\">\n <p>\n You're seeing this error because you have <code>DEBUG = True</code> in\n your Django settings file. Change that to <code>False</code>, and Django\n will display a standard 404 page.\n </p>\n </div>\n</body>\n</html>\n"
Note:
This happens because manifest route in Django does not allow dots in label name:
^v2/(?P<path>.+)/manifests/(?P<pk>[^/.]+)$ [name='manifests-detail']
Updated by dkliban@redhat.com over 4 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to dkliban@redhat.com
- Triaged changed from No to Yes
- Sprint set to Sprint 74
Updated by dkliban@redhat.com over 4 years ago
- Status changed from ASSIGNED to POST
Updated by pulpbot over 4 years ago
Added by dkliban@redhat.com over 4 years ago
Added by dkliban@redhat.com over 4 years ago
Revision b2841db8 | View on GitHub
Adds a custom lookup value regex for the Manifest viewset.
This fixes a bug where manifest tags could not contain periods.
Updated by dkliban@redhat.com over 4 years ago
- Status changed from POST to MODIFIED
Applied in changeset b2841db8db36dee8e5c4ac0c87aac81c391d6dde.
Updated by pulpbot over 4 years ago
Updated by dkliban@redhat.com over 4 years ago
Applied in changeset pulp_container|b2841db8db36dee8e5c4ac0c87aac81c391d6dde.
Updated by pulpbot over 4 years ago
Updated by mdellweg over 4 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Actions
Adds a custom lookup value regex for the Manifest viewset.
This fixes a bug where manifest tags could not contain periods.
fixes: #6884 https://pulp.plan.io/issues/6884