dc = docker.from_env()
dc.login('username', 'password')
private_image = dc.images.pull('org/private:staging') # Is successful
private_image_registry_info = dc.images.get_registry_data('org/private:staging') #fails
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.35/distribution/prg/private:staging/json
During handling of the above exception, another exception occurred:
docker.errors.APIError: 500 Server Error: Internal Server Error ("errors:
denied: requested access to the resource is denied
unauthorized: authentication required
")
get_registry_data() for public images works fine.
If I remove the login I get pull access denied for org/private which is the expected behavior.
Full stacktrace:
```
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py", line 246, in _raise_for_status
response.raise_for_status()
File "/usr/local/lib/python3.6/dist-packages/requests/models.py", line 940, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.35/distribution/org/private:staging/json
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "../docker_cicd", line 103, in
docker_cicd()
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 764, in __call__
return self.main(args, *kwargs)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, *ctx.params)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 555, in invoke
return callback(args, *kwargs)
File "../docker_cicd", line 60, in docker_cicd
output_remote = dc.images.get_registry_data('org/private:staging')
File "/usr/local/lib/python3.6/dist-packages/docker/models/images.py", line 329, in get_registry_data
attrs=self.client.api.inspect_distribution(name),
File "/usr/local/lib/python3.6/dist-packages/docker/utils/decorators.py", line 34, in wrapper
return f(self, *args, *kwargs)
File "/usr/local/lib/python3.6/dist-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, args, *kwargs)
File "/usr/local/lib/python3.6/dist-packages/docker/api/image.py", line 266, in inspect_distribution
self._get(self._url("/distribution/{0}/json", image)), True
File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py", line 252, in _result
self._raise_for_status(response)
File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py", line 248, in _raise_for_status
raise create_api_error_from_http_exception(e)
File "/usr/local/lib/python3.6/dist-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
raise cls(e, response=response, explanation=explanation)
docker.errors.APIError: 500 Server Error: Internal Server Error ("errors:
denied: requested access to the resource is denied
unauthorized: authentication required
")
```
Thanks for the report!
I'm experiencing the same issue. I was able to implement my own inspect_distribution method using an HTTP client, but it'd be much more reliable if I could use the Docker API consistently in my project.
@shin- I saw the fix you made for this issue in #2227 , and I was wondering if by any chance this fix could be part of a next minor/patch update, instead of 4.0?
Thank you! 馃憤 :)
EDIT: For now I'm installing docker-py using pip install git+git://github.com/docker/docker-py.git@b6f6e7270ef1acfe7398b99b575d22d0d37ae8bf 馃憤
Any timeline estimate to release the fix for this bug? Thanks!
I'm encountering the same issue and see that it has been fixed in January but not yet released. Could we please get this released sooner rather than later?
Most helpful comment
Any timeline estimate to release the fix for this bug? Thanks!