Commit Graph
191 Commits
Author SHA1 Message Date
Sanjay Santhanam 41e8777609 fix: correct always-true state check in DockerVM.stop()
The condition 'state != "stopped" or state != "exited"' is a tautology,
so the state check was a no-op and a stop request was sent even for a
container that had already exited.

_get_container_state() never returns "stopped" (only "running",
"paused" or "exited"), so the intended negation of the condition used in
_fix_permissions() requires 'and', not 'or' (De Morgan's law).

Added a regression test asserting no stop query is issued for an
already-exited container.
2026-07-25 10:30:16 -07:00
grossmj a58fa8602b remove wrongly merged code 2026-07-13 10:05:01 +02:00
YueGuobin d8f8b6ec70 fix(docker): handle container name conflict automatically
When a Docker container with the same name already exists (e.g., from a
   previous crashed GNS3 session), Docker returns a 409 Conflict error
   when trying to create a new container with that name. This causes the
   project open operation to fail.

   This fix adds automatic cleanup of stale containers when encountering
   a name conflict:
   - Added DockerHttp409Error exception class
   - Updated http_query to detect 409 status codes
   - Modified create() to remove conflicting containers and retry

   Fixes the issue where opening a project fails with:
   "Docker has returned an error: 409 Conflict. The container name
   '/GNS3.xxx' is already in use by container 'xxx'"
2026-07-13 09:57:55 +02:00
Jeremy Grossmann b222fba42c Revert "Backport telnetlib3 changes" 2026-04-05 21:58:21 +08:00
Cristi 7684ce60ce Backport: Re-write current Telnet server implementation using telnetlib3 library 2026-04-05 13:29:25 +08:00
Dale Arbogast 3dd4184193 fix: busybox static link detection on Alpine/musl
On musl-based systems (Alpine), ldd returns exit code 0 for static
binaries, unlike glibc which returns 1. This causes install_busybox()
to reject all busybox binaries as "dynamically linked" on Alpine.

Fix by also accepting binaries whose executable name contains "static"
(i.e. busybox-static, busybox.static), which are the first two
candidates checked by the function. The generic "busybox" fallback
still relies on the ldd return code check.
2026-02-19 16:44:01 -05:00
grossmj 58d1e8f0c5 Set default location of udhcpc in "/etc/network/udhcpc". Fixes #2582 2026-01-17 18:01:42 +08:00
grossmj f2aaf5ab38 Docker API version requirements and process to handle older daemons 2025-11-17 22:26:18 +10:00
grossmj 3a24318694 Use docker_name property when creating a container 2025-11-17 11:11:11 +10:00
grossmj bae6221991 Set name of container in Docker 2025-11-17 10:59:05 +10:00
grossmj ffd628902c Fix Docker logs decoding. Ref #2522 2025-04-18 13:58:56 +07:00
grossmj ca34053125 Add delay after starting a Docker container and adding connections in uBridge. Ref #2522 2025-04-18 13:50:20 +07:00
grossmj d06f93e772 Fix TypeError when reading Docker container logs. Ref #2522 2025-04-18 13:47:29 +07:00
grossmj 0e89ff56a8 Replace "Docker hub" by "Docker repository" because it is possible to use different repositories 2025-04-16 17:42:40 +07:00
grossmj f3749e83ec Catch error when cannot resize Docker container TTY. 2024-11-07 14:52:59 +10:00
grossmj fb06eb3c0c Remove old debug message 2024-10-31 13:07:09 +10:00
grossmj 48b7e6ca50 Fix run Docker containers with user namespaces enabled. Fixes #2414 2024-10-26 19:03:05 +10:00
grossmj 6e66b26b88 Fix errors in init.sh. Fixes #2431 2024-10-22 12:18:28 +10:00
grossmj 8af71ee291 Formatting 2024-10-01 17:35:11 +07:00
grossmj c0be6875c2 Fix issues with recent busybox versions
* `busybox --install` does not exist
* `sleep` does not take float values (e.g. 0.5).
2024-10-01 17:31:29 +07:00
Jeremy Grossmann af6f34b2ca Revert "Backport auxiliary console support for Qemu, Docker and Dynamips nodes" 2024-09-23 13:10:58 +07:00
grossmj c41c11eb34 Backport auxiliary console support for Qemu, Docker and Dynamips nodes 2024-09-22 18:29:04 +07:00
grossmj 22f022cc22 Fix for running Docker containers with user namespaces enabled 2024-09-19 10:40:22 +07:00
grossmj 3792901dc7 Support for configuring MAC address in Docker containers 2024-09-18 16:30:22 +07:00
grossmj ca1d99b112 Add 'install_builtin_appliances' and 'resources_path' settings in the server config 2024-07-08 18:06:33 +02:00
grossmj 448b94f701 Add more details to error message when busybox is not installed. Fixes https://github.com/GNS3/gns3-gui/issues/3569 2024-04-23 17:54:06 +07:00
grossmj 5b1ba5a57c Fix cannot stop Docker VM while console connection is still active. 2024-04-04 22:57:33 +07:00
grossmj 1a53c9aabf Backport from v3: install Docker resources in a writable location at runtime. 2024-02-14 16:13:45 +08:00
grossmj 1f5085608c Use Docker API v1.24 to get version. 2024-02-14 15:40:19 +08:00
grossmj d6e1ee5dbb Prevent X11 socket file to be modified by Docker container 2023-08-27 18:30:37 +10:00
grossmj 84c886b058 Remove left over Xvfb related code 2023-05-31 21:33:39 +09:30
grossmj e59b5fb95b Remove Xvfb + x11vnc support 2023-05-31 21:28:06 +09:30
grossmj 2361e138ec Properly catch aiohttp client exception. Ref #2228 2023-05-30 16:17:12 +09:30
grossmj d6141d4652 Fix checking for ":" in project dir on Windows for Docker containers 2023-03-23 22:17:29 -10:00
grossmj f08ce9d3f1 Check for colon in project name. Fixes #2203 2023-03-19 18:26:26 +10:00
grossmj 535f89e29e Give udhcpc executable right. Fixes #2159 2023-01-06 20:09:17 +08:00
grossmj e5c8ae4bde Use a stock BusyBox for the Docker integration 2023-01-01 17:04:48 +08:00
grossmj 2550fb3495 Support when the user field defined in Docker container is an ID. Fixes #2134 2022-12-28 11:05:22 +08:00
grossmj 129f0a631c Use original $PATH in init.sh for Docker containers. Ref #2069 2022-08-28 12:06:56 +02:00
grossmj 908911e764 Remove parameter "Name" not useful to create a Docker container 2022-06-18 19:41:20 +02:00
grossmj bdd703a0dc Support to reset all console connections. Ref https://github.com/GNS3/gns3-server/issues/1619 2022-06-15 15:30:44 +02:00
grossmj 2eb64200a4 Add spaces before hostname for Docker network config. Ref #2039 2022-06-12 19:32:34 +08:00
grossmj 988ca7574c Add hostname entry to sample network config for Docker nodes. Fixes #2039 2022-06-08 01:07:31 +08:00
grossmj 527d4bb3ea Run Xtigervnc with MIT-SHM extension disabled for Docker VNC console support. Fixes #2071 2022-06-08 00:05:24 +08:00
grossmj 1837850894 Docker: load custom interface files from /etc/network/interfaces (commented by default). Ref #2052 2022-04-27 18:37:09 +07:00
grossmj 890dbd9f77 Create /etc/network/interfaces.d in Docker container. Fixes #2052 2022-04-20 22:59:51 +07:00
grossmj 460fe5ed95 Prettify Docker '/etc/network/interfaces' file. Ref #2040 2022-04-20 19:29:56 +07:00
grossmj 7490be6d5e Support GNS3 variables in Docker environment variables. Fixes #2033 2022-02-23 14:33:30 +10:30
grossmj b1a62dfdc2 Fix unhandled KeyError exception when starting Docker container. Ref #1991 2021-11-04 16:59:35 +10:30
grossmj f498ab06b4 Wait longer for x11 socket file to be created. Ref #1761 2020-06-10 20:37:13 +09:30