louislam / dockge

A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager
https://dockge.kuma.pet
MIT License
12.53k stars 358 forks source link

Error: spawn docker ENOENT #424

Open clabnet opened 8 months ago

clabnet commented 8 months ago

⚠️ Please verify that this bug has NOT been reported before.

🛡️ Security Policy

Description

Starting dockge I have a lot of errors

👟 Reproduction steps

Starting dockge

👀 Expected behavior

No errors log messages

😓 Actual Behavior

ERROR: Error: spawn docker ENOENT

Dockge Version

Version: 1.4.2 Frontend Version: 1.4.2

💻 Operating System and Arch

Windows 11

🌐 Browser

Versione 121.0.6167.161 (Build ufficiale) (a 64 bit)

🐋 Docker Version

Docker version 25.0.2, build 29cf629

🟩 NodeJS Version

v20.7.0

📝 Relevant log output

2024-02-11T11:15:42Z [GETSERVICESTATUSLIST] ERROR: Error: spawn docker ENOENT
2024-02-11 12:15:42     at __node_internal_captureLargerStackTrace (node:internal/errors:496:5)
2024-02-11 12:15:42     at __node_internal_errnoException (node:internal/errors:623:12)
2024-02-11 12:15:42     at ChildProcess._handle.onexit (node:internal/child_process:283:19)
2024-02-11 12:15:42     at onErrorNT (node:internal/child_process:476:16)
2024-02-11 12:15:42     at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
2024-02-11 12:15:42   errno: -2,
2024-02-11 12:15:42   code: 'ENOENT',
2024-02-11 12:15:42   syscall: 'spawn docker',
2024-02-11 12:15:42   path: 'docker',
2024-02-11 12:15:42   spawnargs: [ 'compose', 'ps', '--format', 'json' ]
alichaudry commented 7 months ago

It seems like this is the same issue as #361. I'm actually running into the same issue myself; poked around a bunch w/ permissions, etc. but couldn't really get it to work. exec'd into the dockge container and was able to run docker and docker compose commands just fine, so I'm not quite sure why the spawn docker command is throwing an exception here.

pdone commented 7 months ago

I ran into the same problem. Before using dockge, there were other stacks on my host. Is this error caused by dockge not being able to manage existing stacks?

pvalfar commented 7 months ago

I get the same error if I change to the beta repo. Changing back to :1 doesn't fix it.

2024-03-06T12:00:50+01:00 [GETSERVICESTATUSLIST] ERROR: Error: spawn docker ENOENT
    at __node_internal_captureLargerStackTrace (node:internal/errors:496:5)
    at __node_internal_errnoException (node:internal/errors:623:12)
    at ChildProcess._handle.onexit (node:internal/child_process:283:19)
    at onErrorNT (node:internal/child_process:476:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn docker',
  path: 'docker',
  spawnargs: [ 'compose', 'ps', '--format', 'json' ]
Betamax21 commented 7 months ago

I'm getting the same error as pvalfar as well.

wreidlinger commented 7 months ago

Same here! In version 1.4.2

03/17/2024 09:34:35 PM 2024-03-17T20:34:35Z [GETSERVICESTATUSLIST] ERROR: Error: spawn docker ENOENT
03/17/2024 09:34:35 PM     at __node_internal_captureLargerStackTrace (node:internal/errors:496:5)
03/17/2024 09:34:35 PM     at __node_internal_errnoException (node:internal/errors:623:12)
03/17/2024 09:34:35 PM     at ChildProcess._handle.onexit (node:internal/child_process:283:19)
03/17/2024 09:34:35 PM     at onErrorNT (node:internal/child_process:476:16)
03/17/2024 09:34:35 PM     at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
03/17/2024 09:34:35 PM   errno: -2,
03/17/2024 09:34:35 PM   code: 'ENOENT',
03/17/2024 09:34:35 PM   syscall: 'spawn docker',
03/17/2024 09:34:35 PM  path: 'docker',
03/17/2024 09:34:35 PM   spawnargs: [ 'compose', 'ps', '--format', 'json' ]
03/17/2024 09:34:35 PM }

My system:

PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
Linux host 5.15.0-100-generic #110-Ubuntu SMP Wed Feb 7 13:28:04 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
explorer369 commented 6 months ago

version: "3.8" services: dockge: image: louislam/dockge:1 restart: unless-stopped user: "root:986" ports:

Host Port : Container Port

  - 5001:5001
volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - ./data:/app/data

  # If you want to use private registries, you need to share the auth file with Dockge:
  - /root/.docker/:/root/.docker

  # Stacks Directory
  # ⚠️ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
  # ⚠️ 1. FULL path only. No relative path (MUST)
  # ⚠️ 2. Left Stacks Path === Right Stacks Path (MUST)
  - /data/docker-service:/opt/stacks
environment:
  # Tell Dockge where is your stacks directory
  - DOCKGE_STACKS_DIR=/opt/stacks

After adding the above user configuration, I did not report any errors, but I am not sure if this is the cause

bwirt commented 3 months ago

For me this was a permissions problem. Made sure my docker compose assigns proper user:group and ensured stacks directory had appropriate write permissions for this user, as well as access to docker socket.

The error wasn't obvious, would be nice to have the app check this on boot.

Dark-Existed commented 3 months ago

Hi everyone, I found that might be caused by a mismatch between the name field in your docker-compose.yml and your folder name. To resolve this, make sure that the folder name and the name field are the same. You can do this by either editing the name field or changing the folder name to match.