-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] Docker Registry Example with non-root path results in Default Backend 404 #4027
Comments
First, remove
Why? Your docker client uses the /v2 path to get information about the registry. Without this will not work. |
I'm still getting the same error when doing a Docker push. Error parsing HTTP 404 response body: invalid character 'd' looking for beginning of value: "default backend - 404" The only way I can get a registry to work with nginx-ingress is to use subdomains or root-path "/". Any other options results in default backend 404. I also try using "/registry/v2(.*)" for the path, and that didn't work. The registry should be accesible via: Images tag should be:
|
@gabrielcalderon this is working for me. Please check your definitions
Yes. That's correct. Also, please check you are using the latest version of the ingress controller 0.24.1 |
That means you have some issue with the ingress definition and are being directed to the default backend |
I just redeployed the registry/ingress using the provided YML. Although I no longer get the default backend 404, I get a different error. Using the exact yml that you posted I am unable to docker push. It can find the registry and then I get the following error:
I just keeps retrying, retrying to post the image. Looking at the logs for NGINX-Ingress I can see the following:
Somehow the /registry/v2$1 is duplicating the path when the GET happens. |
@gabrielcalderon please check that only the yaml files I posted exist in the cluster.
|
Thanks! We decided to deploy the registry using a sub-domain, we couldn't get the /registry to work at all. |
Well actually it's a bit tricky because when I use your two Ingress, it seems to work until I try to push an image.
The |
NGINX Ingress controller version: Latest
What happened:
When deploying the docker-registry using the example provided on this repository and using a non-root path docker is unable to push images.
What you expected to happen:
Be able to push images to non-root paths
How to reproduce it (as minimally and precisely as possible):
I just followed the docker-registry example and added a non-root path using REGISTRY_HTTP_PREFIX in the deployment.
Anything else we need to know:
Deployment.yml
Ingress Rule
Note:
Visiting https://mydomain.com/registry/v2/_catalog from a browser works fine and I get a respond back from the registry.
Ex.
docker pull alpine:latest
docker tag alpine:latest mydomain.com/registry/alpine:latest
docker push mydomain.com/registry/alpine:latest
When doing a push I get default backend 404.
I'm not sure if this is an issue with Docker, Registry, NGINX Ingress, or what.
The text was updated successfully, but these errors were encountered: