GNS3 / gns3-gui

GNS3 Graphical Network Simulator
http://www.gns3.com
GNU General Public License v3.0
2.17k stars 436 forks source link

Cannot Start containers #3569

Closed pmanolak closed 6 months ago

pmanolak commented 8 months ago

I recently upgraded to GNS3 2.2.46 and I am no longer able to start any containers that were working previously because of the following error "error while starting alpine-1: No busybox executable could be found No busybox executable could be found"

The same behavior faced for all Docker Container templates. I have tried also to delete them and add them again, without any succeed.

Screenshot from 2024-03-06 18-08-02

Screenshot from 2024-03-06 18-07-38

Dont know if its related, but the folder "/usr/lib/python3.10/site-packages/gns3server/compute/docker/resources" is empty.

Please note that this happens only with Docker templates when Dynamips, IOU and Quemu templates run correctly.

Also I can run these docker containers without issues from terminal. Issue happens only when trying to start them inside from GNS3.

Finally busybox is already installed on my system.

Thanks a lot for your assistance. Panagiotis.

pmanolak commented 8 months ago

Example appliance I have used is ipterm https://hub.docker.com/r/gns3/ipterm

epacua commented 8 months ago

This is due to missing busybox executable at

venv/lib/python3.11/site-packages/gns3server/compute/docker/resources/bin/

Copying it over to the new install will resolve this.

gns3-busybox

pmanolak commented 8 months ago

This is due to missing busybox executable at

venv/lib/python3.11/site-packages/gns3server/compute/docker/resources/bin/

Copying it over to the new install will resolve this.

gns3-busybox

Hi epacua. It seems that busybox missed from the latest version, as I cannot find it elsewhere except under /usr/bin/busybox /usr/lib/initramfs-tools/bin/busybox but copy it from there did not solve the issue.

pmanolak commented 8 months ago

It seems that finally I found a solution by copy it under /usr/share/gns3/gns3-server/lib/python3.10/site-packages/gns3server/compute/docker/resources/bin and not under /usr/lib/python3.10/site-packages/gns3server/compute/docker/resources/

but again it is strange how it was lost without make any change.

epacua commented 8 months ago

My guess here is that:

It seems that finally I found a solution by copy it under /usr/share/gns3/gns3-server/lib/python3.10/site-packages/gns3server/compute/docker/resources/bin

gns3 is installed via apt or any system package manager as it saves files at /usr/share.

... and not under /usr/lib/python3.10/site-packages/gns3server/compute/docker/resources/

but again it is strange how it was lost without make any change.

while this one appears to be installed via pip. So basically you end up with two copies/installations of gns3.

What you did, it appears to me, is you copied a system-installed busybox executable with dynamic libraries to gns3 directory. That won't work because the docker depends on statically-built busybox which does not rely on external libraries.

pmanolak commented 8 months ago

Hi epacua,

Currently I dont have any installed gns3 through pip, (maybe I did that before many times ago) and indeed I installed gns3 via apt package manager. In any case, its strange why the busybox disappeared, even from the correct path after the upgrade. As everything worked ok since a couple of days and before the upgrade to the latest version, seems that something during the upgrade remove the busybox file.

tsinghai1982 commented 7 months ago

switching those package to version 2.2.45 can be ok pipx install gns3-gui==2.2.45 pipx install gns3-server==2.2.45

grossmj commented 6 months ago

The busybox binary is not included in the GNS3 source code anymore. Busybox must already be installed on your system before trying to start a Docker container. To install on Debian/Ubuntu: apt install busybox-static

On starting a Docker container: the GNS3 server will try to find an executable named "busybox-static", "busybox.static" or "busybox" in the paths listed in the $PATH environment variable, then copy that executable a "resources" user data directory, for instance ~/.local/share/GNS3/docker/resources/bin

grossmj commented 6 months ago

I have updated the error message to explicitly tell that busybox must be installed.