microsoft / vscode-remote-release

Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
https://aka.ms/vscode-remote
Other
3.6k stars 273 forks source link

Devcontainer for vscode.dev? #9059

Open lattice0 opened 10 months ago

lattice0 commented 10 months ago

Hi, I connected to a tunnel and I cannot use devcontainer or even install the Dev Containers extension on vscode.dev. I'm trying to code completely on the cloud but devcontainer is very much needed for me because I always destroy my VMs doing lota of stuff and I don't want to reinstall stuff.

Why there's no support for dev containers on tunnels?

Why it works on codespaces online if it's simply an online vscode?

Context: coding on tablet

### Tasks
lzunsec commented 10 months ago

currently cannot do remote development because this is missing, please add 🙏

jon77p commented 10 months ago

Similar to my comment in #7705 and original issue in #7715 nearly a year ago, but this support would be crucial to have to fully enable development on vscode.dev using personal infrastructure separate from the Codespaces workflow.

Devcontainers are a great feature to apply reusability/repeatability concepts towards development environments, so it would be great to have this feature parity across all ways of accessing and using the vscode environment.

lattice0 commented 10 months ago

Yes. I've been developing with Flutter with Rust on Android, which is very very uncommon, so we started using VSCode with all the extensions needes as Android Studio simply couldn't handle Flutter and Rust mixed with Kotlin properly. But imagine making everyone having to install everything for Flutter, Rust, Kotlin... So we started using Dev Containers. But every dev wants to code with their prefered system. I, for example, started using a Galaxy Tab S9 Ultra tablet and I'm very happy with it, because x64 computer bateries are simply trash, they are hot on my lap and macbooks are extremely expensive here, and I even use my phone on a TV in Samsung Dex mode sometimes, I also use a lapdock where I simply connect my phone and suddenly I have a laptop.

So, vscode.dev attends all my needs except for the devcontainer, this is extremely needed so I can truly code anywhere and anyone on my company can simply get working from day 1 without having to install anything. It's also safer as nowadays, dependencies can run arbitrary code when installed. Devcontainers make total sense on the browser! I think it's already implictly supported as that's how codespaces work. I like codespaces but it's expensive for my needs currently (poor country).

Pleaaaaaaase microsoft!!! We need this urgently.

77see commented 10 months ago

need this on my ipad and also our company can move to cloud development finally

jjcasmar commented 10 months ago

Is there any update on being able to connect to devcontainer from vscode.dev?

lattice0 commented 10 months ago

@jjcasmar It looks like it's in the backlog. I think we need to raise awareness so microsoft moves to in progress soon. I'm dying for this feature, already on my limit on github codespaces. Maybe send this thread to some friends

jjcasmar commented 10 months ago

If at least it was possible to open a tunnel directly to a devcontainer, instead of to the host...

lattice0 commented 10 months ago

@jjcasmar it is, you can run a devcontainer and then run vscode tunnel installer as a post install script or on the dockerfile, but it would be a little annoying and not the way it should be done

jjcasmar commented 10 months ago

Yeah, but its not possible to do it automatically because it requires authentication. https://github.com/microsoft/vscode-remote-release/issues/9132 https://github.com/microsoft/vscode-remote-release/issues/9131

Ilykuleshov commented 10 months ago

I'd like to echo the need for this, as this would also allow a zero-installation full-featured coding solution on a browser-based OS, such as Chromium OS, e.g. for coding on low-grade/old laptops.

lattice0 commented 10 months ago

@Ilykuleshov same here, on our company we want people to code on whatever device they have, even tablets (Tab S9 Ultra here). Codespaces is cool but too expensive and also for things like Android development where you need to have USB connection or maybe a local wireless connection for installing the APK on the phone over ADB, it's better to use a nearby machine.

Without devcontainers though it's not easy to switch between development VMs easily (yes, we use VMs for isolation, and then containers for building with the correct dependencies)

neet-ev commented 6 months ago

this is the only feature missing for us to use vscode on our company

lattice0 commented 6 months ago

I tried his workaround of doing a live share from a devcontainer but vscode.dev refuses to load it https://github.com/microsoft/vscode-remote-release/issues/9493

I want this featureee so baaaad

YoRyan commented 6 months ago

I didn't want to wait for Microsoft to work on this, so I wrote my own program. It builds dev containers using the dev container CLI and then injects the code CLI to create a tunnel. It isn't quite seamless, since you need to authenticate every time you create a new tunnel, and you only get five slots on vscode.dev. But it includes support for devcontainer.json-defined settings and extensions, so it almost feels as good as Codespaces.

Until such time as there is official support, it does the job for me.

lattice0 commented 6 months ago

My current solution is to stream VSCode from linux with Sunshine and use an Android Moonlight client. This is sad.

Is VSCode simply allowed the local VSCode to open in a browser, then I could TCP forward from the tablet, which would be even better as I don't have to pass through Microsoft servers which adds delay.

YoRyan commented 6 months ago

There's now a code serve-web command that starts a self-hosted, standalone VS Code server that looks and performs great. I have this command implemented in myspace as the local subcommand, and it's almost perfect for the DIY Codespaces use case. But unfortunately, the dev container CLI does not yet implement port forwarding for dev containers (https://github.com/devcontainers/cli/issues/186). That means we only get one port (appPort) which we have to use for the VS Code server itself. Without access to the other ports, you can't reach any services you spin up in your dev container. :cry:

lattice0 commented 6 months ago

@YoRyan first of all, thanks, just tested this solution and is much faster via local ssh forwarding over my local network. Unfortunately the devcontainer plugin still does not work.

For the devcontainer CLI, you're starting one with VSCode installed and then accessing it from outside? It's a good workaround but I wanted so bad for this to work with the extension already

YoRyan commented 6 months ago

For the devcontainer CLI, you're starting one with VSCode installed and then accessing it from outside?

Precisely. The devcontainer CLI is made by Microsoft, so in theory the containers it creates should be just like those created by the official extension, or Codespaces.

Obviously it would be preferable to have first-party support, but the extension is closed-source, so the ball is firmly in Microsoft's court.

worm991 commented 3 months ago

i need this feature for coding with default environments with no setup when someone joins our company, we use GPUs so cloud is needed but web version is essential

iguanus commented 3 months ago

I am also looking for a fully functional web interface. Tailscale + VSCode dev server works fine with native VS Code installations.

However, one cannot do this with a Quest 3 device, as one can't install Tailscale nor VSCode there. So the online interface allows for truly remote development, bypassing the client device issue. Since it works through SSH, I don't see the impediment to use it through the TCP tunnel, other than the lack of implementation on Microsoft's side.

grutin111 commented 2 months ago

need this to code on my home server with much more processing power, without burning my laptop, and also allocate one VM for an employee, but without the hassle of setting everything. Devcontainers on web is a must