Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open in Browser using 0.0.0.0 not the remote context #4214

Open
MartinCanto opened this issue Jan 24, 2024 · 6 comments
Open

Open in Browser using 0.0.0.0 not the remote context #4214

MartinCanto opened this issue Jan 24, 2024 · 6 comments
Assignees
Milestone

Comments

@MartinCanto
Copy link

Bottom Line Up Front (BLUF): Is there a way to configure the ‘Open in Browser’ option to direct to a specific IP address or hostname, instead of defaulting to 0.0.0.0?

I have a setup where a Visual Studio Code (VSCode) server is running within my Docker swarm, alongside a Docker-in-Docker (dind) container. Both are interconnected via a Docker network. I’ve configured the Docker context within the VSCode server, enabling me to execute Docker commands and spawn new containers within the dind container from the VSCode server without any issues.

Additionally, I’ve installed the Docker extension in my VSCode server environment. When I initiate a container and select the ‘Open in Browser’ option from the Docker extension for VSCode, it launches a new browser window. However, it returns an error: “connect ECONNREFUSED 0.0.0.0:8080”.

My question is: How can I configure the system so that when I select ‘Open in Browser’ for a container, it establishes a connection to the dind container over the Docker network, rather than attempting to connect using 0.0.0.0:8080?

For reference, I can successfully curl the dind container from the terminal inside VSCode using the command: curl http://dind:8080.

@dbreshears dbreshears added this to the 1.30.0 milestone Jan 24, 2024
@bwateratmsft
Copy link
Contributor

IIRC we use the results from container inspect to determine the IP to connect to. Can you do docker inspect <containerID> and paste the full output?

@MartinCanto
Copy link
Author

MartinCanto commented Feb 1, 2024

Sure here is the output of the docker inspect on the container.

[ { "Id": "406b692a272b815b18c3a5612de0ab3706e6d1e5467af77acce7b9228d9ea314", "Created": "2024-02-01T18:44:36.288836309Z", "Path": "/docker-entrypoint.sh", "Args": [ "nginx", "-g", "daemon off;" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 10164, "ExitCode": 0, "Error": "", "StartedAt": "2024-02-01T18:45:00.518925269Z", "FinishedAt": "2024-02-01T18:44:51.567637109Z" }, "Image": "sha256:d22981564c8b7e55050183d58ff987203e550e9707b39b7a2474412ba13552ec", "ResolvConfPath": "/var/lib/docker/containers/406b692a272b815b18c3a5612de0ab3706e6d1e5467af77acce7b9228d9ea314/resolv.conf", "HostnamePath": "/var/lib/docker/containers/406b692a272b815b18c3a5612de0ab3706e6d1e5467af77acce7b9228d9ea314/hostname", "HostsPath": "/var/lib/docker/containers/406b692a272b815b18c3a5612de0ab3706e6d1e5467af77acce7b9228d9ea314/hosts", "LogPath": "/var/lib/docker/containers/406b692a272b815b18c3a5612de0ab3706e6d1e5467af77acce7b9228d9ea314/406b692a272b815b18c3a5612de0ab3706e6d1e5467af77acce7b9228d9ea314-json.log", "Name": "/priceless_bell", "RestartCount": 0, "Driver": "overlay2", "Platform": "linux", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "", "ExecIDs": null, "HostConfig": { "Binds": null, "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "default", "PortBindings": { "80/tcp": [ { "HostIp": "", "HostPort": "8080" } ] }, "RestartPolicy": { "Name": "no", "MaximumRetryCount": 0 }, "AutoRemove": false, "VolumeDriver": "", "VolumesFrom": null, "ConsoleSize": [ 25, 201 ], "CapAdd": null, "CapDrop": null, "CgroupnsMode": "host", "Dns": [], "DnsOptions": [], "DnsSearch": [], "ExtraHosts": null, "GroupAdd": null, "IpcMode": "private", "Cgroup": "", "Links": null, "OomScoreAdj": 0, "PidMode": "", "Privileged": false, "PublishAllPorts": false, "ReadonlyRootfs": false, "SecurityOpt": null, "UTSMode": "", "UsernsMode": "", "ShmSize": 67108864, "Runtime": "runc", "Isolation": "", "CpuShares": 0, "Memory": 0, "NanoCpus": 0, "CgroupParent": "", "BlkioWeight": 0, "BlkioWeightDevice": [], "BlkioDeviceReadBps": [], "BlkioDeviceWriteBps": [], "BlkioDeviceReadIOps": [], "BlkioDeviceWriteIOps": [], "CpuPeriod": 0, "CpuQuota": 0, "CpuRealtimePeriod": 0, "CpuRealtimeRuntime": 0, "CpusetCpus": "", "CpusetMems": "", "Devices": [], "DeviceCgroupRules": null, "DeviceRequests": null, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": null, "OomKillDisable": false, "PidsLimit": null, "Ulimits": [], "CpuCount": 0, "CpuPercent": 0, "IOMaximumIOps": 0, "IOMaximumBandwidth": 0, "MaskedPaths": [ "/proc/asound", "/proc/acpi", "/proc/kcore", "/proc/keys", "/proc/latency_stats", "/proc/timer_list", "/proc/timer_stats", "/proc/sched_debug", "/proc/scsi", "/sys/firmware", "/sys/devices/virtual/powercap" ], "ReadonlyPaths": [ "/proc/bus", "/proc/fs", "/proc/irq", "/proc/sys", "/proc/sysrq-trigger" ] }, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/b01bd1e2644489b801fd93c9d64bd7508f879aff38d42da823d0941494cfe9c0-init/diff:/var/lib/docker/overlay2/c3tc8hdm07vj05iaf7f2j4s02/diff:/var/lib/docker/overlay2/k2pecepv1z6upos23sn55vghd/diff:/var/lib/docker/overlay2/0d6463669791a67ae525d49b5e4ff68f7cd3b801725723db1e997d663865f8ba/diff:/var/lib/docker/overlay2/9925525861feb27cab23e2c9a7f56b5428585899608f6f59fb739efc503092b1/diff:/var/lib/docker/overlay2/2c4778a5d369ae9d0bbff753c949a7e6de12c8d6d23782ce2195a94fddba979c/diff:/var/lib/docker/overlay2/08ebf6f5f28f288b1b2c2c12e10e3622afad25cd3caad564fa09087680e1532e/diff:/var/lib/docker/overlay2/87c66e0217d3b9dbff67885b2810bc135187500ce471fba7e8faaa23d0231a43/diff:/var/lib/docker/overlay2/486af9f03524bfbdcf16e4ff2acbd6824386571c4a6357f11f74a83c2e51009d/diff:/var/lib/docker/overlay2/bef31e75e2a3c8695259409b1d3b5f6e8990d81402f7936682a396b722add6af/diff", "MergedDir": "/var/lib/docker/overlay2/b01bd1e2644489b801fd93c9d64bd7508f879aff38d42da823d0941494cfe9c0/merged", "UpperDir": "/var/lib/docker/overlay2/b01bd1e2644489b801fd93c9d64bd7508f879aff38d42da823d0941494cfe9c0/diff", "WorkDir": "/var/lib/docker/overlay2/b01bd1e2644489b801fd93c9d64bd7508f879aff38d42da823d0941494cfe9c0/work" }, "Name": "overlay2" }, "Mounts": [], "Config": { "Hostname": "406b692a272b", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "ExposedPorts": { "80/tcp": {}, "8080/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "NGINX_VERSION=1.25.3", "NJS_VERSION=0.8.2", "PKG_RELEASE=1~bookworm" ], "Cmd": [ "nginx", "-g", "daemon off;" ], "Image": "workspace:latest", "Volumes": null, "WorkingDir": "", "Entrypoint": [ "/docker-entrypoint.sh" ], "OnBuild": null, "Labels": { "maintainer": "NGINX Docker Maintainers <[email protected]>" }, "StopSignal": "SIGQUIT" }, "NetworkSettings": { "Bridge": "", "SandboxID": "6e514824825eb9ab440007260473f397ac047430d4ba9d041786e1d4b8972cdc", "SandboxKey": "/var/run/docker/netns/6e514824825e", "Ports": { "80/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "8080" } ], "8080/tcp": null }, "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "3361f8a7f6f953aa774f69affc39e83c8128460a92c45d5959b5be47829c00f5", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.3", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:03", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": [ "406b692a272b" ], "MacAddress": "02:42:ac:11:00:03", "NetworkID": "73f9891cc4465b85987b1f367c09eaa4ea4d479eb557339e7a404c2fd9c315b6", "EndpointID": "3361f8a7f6f953aa774f69affc39e83c8128460a92c45d5959b5be47829c00f5", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.3", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "DriverOpts": null, "DNSNames": null } } } } ]

@bwateratmsft
Copy link
Contributor

What address do you get if you do nslookup dind?

@MartinCanto
Copy link
Author

nslookup dind
Server:         127.0.0.11
Address:        127.0.0.11#53

Non-authoritative answer:
Name:   dind
Address: 10.0.7.17

@bwateratmsft
Copy link
Contributor

bwateratmsft commented Feb 13, 2024

It may not be possible to make the Open in Browser command open the right URL, since neither the hostname (dind) nor the IP address (10.0.7.17) appear in the docker inspect result. However, it still shouldn't be opening 0.0.0.0, it's supposed to open localhost in that case...

@MartinCanto
Copy link
Author

Thank you for looking into it. I was hoping for some way to just pass the info into it maybe through an env variable or maybe add a label to the container itself that would show up.
I appreciate your thorough review.

@bwateratmsft bwateratmsft self-assigned this Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants