Skip to content

docker client not found inside the container during installation using docker approach #12

@TheDistroHopper

Description

@TheDistroHopper

I am trying to set up a Frappe site with Flashdesk app.
Tried frappe_docker as well as Frappe-Manager, but unable get beyond this step.

Docker is not available / installable via apt inside the container.

Should the lab containers be created inside the container, or on the host system?


Error at

File "/workspace/frappe-bench/apps/flashdesk/flashdesk/__init__.py", line 2, in <module>
    from flashdesk.docker_utils.docker_client import *
  File "/workspace/frappe-bench/apps/flashdesk/flashdesk/docker_utils/docker_client.py", line 10, in <module>
    client = docker.from_env()

Full log

╭─frappe@life-os.localhost ~/frappe-bench  
╰─➤  bench get-app https://github.com/arunmathaisk/flashdesk
Getting flashdesk
$ git clone https://github.com/arunmathaisk/flashdesk  --depth 1 --origin upstream
Cloning into 'flashdesk'...
remote: Enumerating objects: 144, done.
remote: Counting objects: 100% (144/144), done.
remote: Compressing objects: 100% (127/127), done.
remote: Total 144 (delta 7), reused 98 (delta 2), pack-reused 0 (from 0)
Receiving objects: 100% (144/144), 8.17 MiB | 5.88 MiB/s, done.
Resolving deltas: 100% (7/7), done.
Ignoring dependencies of https://github.com/arunmathaisk/flashdesk. To install dependencies use --resolve-deps
Installing flashdesk
$ uv pip install --quiet --upgrade -e /workspace/frappe-bench/apps/flashdesk  --python /workspace/frappe-bench/env/bin/python
$ yarn install --check-files
yarn install v1.22.22
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
$ cd frontend && npm install

added 238 packages, and audited 239 packages in 3s

72 packages are looking for funding
  run `npm fund` for details

12 vulnerabilities (2 low, 4 moderate, 6 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
Done in 3.24s.
$ bench build --app flashdesk
Traceback (most recent call last):
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 493, in _make_request
    conn.request(
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connection.py", line 494, in request
    self.endheaders()
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1314, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1074, in _send_output
    self.send(msg)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1018, in send
    self.connect()
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/transport/unixconn.py", line 26, in connect
    sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/adapters.py", line 644, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/util/retry.py", line 474, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/util/util.py", line 38, in reraise
    raise value.with_traceback(tb)
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 493, in _make_request
    conn.request(
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connection.py", line 494, in request
    self.endheaders()
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1314, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1074, in _send_output
    self.send(msg)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1018, in send
    self.connect()
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/transport/unixconn.py", line 26, in connect
    sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 223, in _retrieve_server_version
    return self.version(api_version=False)["ApiVersion"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/daemon.py", line 181, in version
    return self._result(self._get(url), json=True)
                        ^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/utils/decorators.py", line 44, in inner
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 246, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/adapters.py", line 659, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/workspace/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 75, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1304, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1325, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 929, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/workspace/frappe-bench/apps/flashdesk/flashdesk/__init__.py", line 2, in <module>
    from flashdesk.docker_utils.docker_client import *
  File "/workspace/frappe-bench/apps/flashdesk/flashdesk/docker_utils/docker_client.py", line 10, in <module>
    client = docker.from_env()
             ^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/client.py", line 94, in from_env
    return cls(
           ^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/client.py", line 45, in __init__
    self.api = APIClient(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 207, in __init__
    self._version = self._retrieve_server_version()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 230, in _retrieve_server_version
    raise DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
Traceback (most recent call last):
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 493, in _make_request
    conn.request(
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connection.py", line 494, in request
    self.endheaders()
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1314, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1074, in _send_output
    self.send(msg)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1018, in send
    self.connect()
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/transport/unixconn.py", line 26, in connect
    sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/adapters.py", line 644, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/util/retry.py", line 474, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/util/util.py", line 38, in reraise
    raise value.with_traceback(tb)
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connectionpool.py", line 493, in _make_request
    conn.request(
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/urllib3/connection.py", line 494, in request
    self.endheaders()
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1314, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1074, in _send_output
    self.send(msg)
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/http/client.py", line 1018, in send
    self.connect()
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/transport/unixconn.py", line 26, in connect
    sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 223, in _retrieve_server_version
    return self.version(api_version=False)["ApiVersion"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/daemon.py", line 181, in version
    return self._result(self._get(url), json=True)
                        ^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/utils/decorators.py", line 44, in inner
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 246, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/requests/adapters.py", line 659, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/workspace/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 114, in <module>
    main()
  File "/workspace/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 20, in main
    click.Group(commands=commands)(prog_name="bench")
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/click/core.py", line 1830, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/click/core.py", line 1830, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/apps/frappe/frappe/commands/utils.py", line 77, in build
    bundle(
  File "/workspace/frappe-bench/apps/frappe/frappe/build.py", line 233, in bundle
    setup()
  File "/workspace/frappe-bench/apps/frappe/frappe/build.py", line 216, in setup
    pymodules.append(frappe.get_module(app))
                     ^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/apps/frappe/frappe/__init__.py", line 1454, in get_module
    return importlib.import_module(modulename)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/.pyenv/versions/3.12.0/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1325, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 929, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/workspace/frappe-bench/apps/flashdesk/flashdesk/__init__.py", line 2, in <module>
    from flashdesk.docker_utils.docker_client import *
  File "/workspace/frappe-bench/apps/flashdesk/flashdesk/docker_utils/docker_client.py", line 10, in <module>
    client = docker.from_env()
             ^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/client.py", line 94, in from_env
    return cls(
           ^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/client.py", line 45, in __init__
    self.api = APIClient(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 207, in __init__
    self._version = self._retrieve_server_version()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/frappe-bench/env/lib/python3.12/site-packages/docker/api/client.py", line 230, in _retrieve_server_version
    raise DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
ERROR: bench build --app flashdesk
subprocess.CalledProcessError: Command 'bench build --app flashdesk' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/user/.bin/bench_orig", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/cli.py", line 132, in cli
    bench_command()
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/commands/make.py", line 181, in get_app
    get_app(
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/app.py", line 781, in get_app
    app.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/utils/render.py", line 126, in wrapper_fn
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/app.py", line 253, in install
    install_app(
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/app.py", line 948, in install_app
    build_assets(bench_path=bench_path, app=app, using_cached=using_cached)
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/utils/bench.py", line 404, in build_assets
    exec_cmd(command, cwd=bench_path, env=env)
  File "/opt/user/bench-venv/lib/python3.12/site-packages/bench/utils/__init__.py", line 184, in exec_cmd
    raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: bench build --app flashdesk

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions