docker / docker/docker-py

KeyError: 'http+docker' anytime I use command 'rocker'

Open
#3,279 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
7.2k
Forks
1.7k
Avg merge
13d 8h
Merged PRs (30d)
2

Description

I met this problem when I was using
'rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware:latest-runtime-cuda'.
Then I found it happens everytime I use command 'rocker'. It seems a package problem from rocker, not related to other packages.

The commands I tried:
  1. rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware:latest-runtime-cuda
  2. rocker --version
  3. rocker
The terminal screenshot:

image

The log:

Traceback (most recent call last):
File "/usr/bin/rocker", line 33, in
sys.exit(load_entry_point('rocker==0.2.16', 'console_scripts', 'rocker')())
File "/usr/lib/python3/dist-packages/rocker/cli.py", line 45, in main
extension_manager.extend_cli_parser(parser, default_args)
File "/usr/lib/python3/dist-packages/rocker/core.py", line 131, in extend_cli_parser
p.register_arguments(parser, default_args)
File "/usr/lib/python3/dist-packages/rocker/extensions.py", line 160, in register_arguments
client = get_docker_client()
File "/usr/lib/python3/dist-packages/rocker/core.py", line 217, in get_docker_client
docker_client.ping()
File "/usr/lib/python3/dist-packages/docker/api/daemon.py", line 166, in ping
return self._result(self._get(self._url('/_ping'))) == 'OK'
File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 46, in inner
return f(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 230, in _get
return self.get(url, **self._set_request_timeout(kwargs))
File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 633, in send
conn = self.get_connection_with_tls_context(
File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 489, in get_connection_with_tls_context
conn = self.poolmanager.connection_from_host(
File "/usr/lib/python3/dist-packages/urllib3/poolmanager.py", line 234, in connection_from_host
return self.connection_from_context(request_context)
File "/usr/lib/python3/dist-packages/urllib3/poolmanager.py", line 244, in connection_from_context
pool_key_constructor = self.key_fn_by_scheme[scheme]
KeyError: 'http+docker'

The system and environment

Ubuntu 20.04
python3-rocker 0.2.16-100

Thanks for your help!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with rocker --version and inspect the traceback through rocker/cli.py, rocker/core.py, rocker/extensions.py, and docker/api/client.py. Trace the Docker client ping until the http+docker lookup fails; done means the reported commands no longer raise KeyError and the existing Docker API behavior remains functional.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.