Skip to content

Bug: Testcontainer fails to fetch server api version on 4.11 but works on 4.10 #830

Description

@KantiCodes

Describe the bug

Hey seems like you released a new minor version 2 hours ago and it has a bug in it.

Bug: Testcontainer fails to fetch server api version on 4.11 but works on 4.10
To Reproduce

Install version 4.11 and try to run the from testcontainers.mssql import DbContainer, SqlServerContainer

>>>fromtestcontainers.mssqlimportDbContainer, SqlServerContainerTraceback (mostrecentcalllast):
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line787, inurlopenresponse=self._make_request(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line493, in_make_requestconn.request(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connection.py", line445, inrequestself.endheaders()
File"/home/bartek/.local/share/uv/python/cpython-3.10.8-linux-x86_64-gnu/lib/python3.10/http/client.py", line1277, inendheadersself._send_output(message_body, encode_chunked=encode_chunked)
File"/home/bartek/.local/share/uv/python/cpython-3.10.8-linux-x86_64-gnu/lib/python3.10/http/client.py", line1037, in_send_outputself.send(msg)
File"/home/bartek/.local/share/uv/python/cpython-3.10.8-linux-x86_64-gnu/lib/python3.10/http/client.py", line975, insendself.connect()
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/transport/unixconn.py", line26, inconnectsock.connect(self.unix_socket)
FileNotFoundError: [Errno2] NosuchfileordirectoryDuringhandlingoftheaboveexception, anotherexceptionoccurred:
Traceback (mostrecentcalllast):
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/requests/adapters.py", line667, insendresp=conn.urlopen(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line841, inurlopenretries=retries.increment(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/util/retry.py", line474, inincrementraisereraise(type(error), error, _stacktrace)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/util/util.py", line38, inreraiseraisevalue.with_traceback(tb)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line787, inurlopenresponse=self._make_request(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line493, in_make_requestconn.request(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/urllib3/connection.py", line445, inrequestself.endheaders()
File"/home/bartek/.local/share/uv/python/cpython-3.10.8-linux-x86_64-gnu/lib/python3.10/http/client.py", line1277, inendheadersself._send_output(message_body, encode_chunked=encode_chunked)
File"/home/bartek/.local/share/uv/python/cpython-3.10.8-linux-x86_64-gnu/lib/python3.10/http/client.py", line1037, in_send_outputself.send(msg)
File"/home/bartek/.local/share/uv/python/cpython-3.10.8-linux-x86_64-gnu/lib/python3.10/http/client.py", line975, insendself.connect()
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/transport/unixconn.py", line26, inconnectsock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
Duringhandlingoftheaboveexception, anotherexceptionoccurred:
Traceback (mostrecentcalllast):
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/api/client.py", line223, in_retrieve_server_versionreturnself.version(api_version=False)["ApiVersion"]
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/api/daemon.py", line181, inversionreturnself._result(self._get(url), json=True)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/utils/decorators.py", line44, ininnerreturnf(self, *args, **kwargs)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/api/client.py", line246, in_getreturnself.get(url, **self._set_request_timeout(kwargs))
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/requests/sessions.py", line602, ingetreturnself.request("GET", url, **kwargs)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/requests/sessions.py", line589, inrequestresp=self.send(prep, **send_kwargs)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/requests/sessions.py", line703, insendr=adapter.send(request, **kwargs)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/requests/adapters.py", line682, insendraiseConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
Theaboveexceptionwasthedirectcauseofthefollowingexception:
Traceback (mostrecentcalllast):
File"<stdin>", line1, in<module>File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/testcontainers/mssql/__init__.py", line4, in<module>fromtestcontainers.core.genericimportDbContainerFile"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/testcontainers/core/generic.py", line16, in<module>fromtestcontainers.core.containerimportDockerContainerFile"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/testcontainers/core/container.py", line12, in<module>fromtestcontainers.core.configimportConnectionModeFile"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/testcontainers/core/config.py", line52, in<module>RYUK_DOCKER_SOCKET: str=get_docker_socket()
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/testcontainers/core/config.py", line36, inget_docker_socketclient=docker.from_env()
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/client.py", line94, infrom_envreturncls(
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/client.py", line45, in__init__self.api=APIClient(*args, **kwargs)
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/api/client.py", line207, in__init__self._version=self._retrieve_server_version()
File"/home/bartek/projects/US/framework/.venv/lib/python3.10/site-packages/docker/api/client.py", line230, in_retrieve_server_versionraiseDockerException(
docker.errors.DockerException: ErrorwhilefetchingserverAPIversion: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

Runtime environment

Ubuntu, python 3.10.8

(bartek) ➜ ~ git:(main) ✗ uv pip list
Package Version
------------------ ---------
certifi 2025.6.15
charset-normalizer 3.4.2
docker 7.1.0
idna 3.10
python-dotenv 1.1.0
requests 2.32.4
testcontainers 4.11.0
typing-extensions 4.14.0
urllib3 2.4.0
wrapt 1.17.2

EDIT:

I took a dig myself to try to find the culprit

kudos to @chbndrhnns to realizing it connects

4.10

testcontainers/core/config.py: 34

  • RYUK_DOCKER_SOCKET: str = environ.get("TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE", "/var/run/docker.sock")

4.11

testcontainers/core/config.py:52

  • RYUK_DOCKER_SOCKET: str = get_docker_socket()

Where the get_docker_socket connects

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions