Vscode-remote-release: Complete offline installation of VSCode Remote

Created on 11 Sep 2019  路  7Comments  路  Source: microsoft/vscode-remote-release

In continuation of https://github.com/microsoft/vscode-remote-release/issues/15 , I think VSCode Remote is stable enough now and we ought to re-visit this issue.

Use Case

Install VSCode Remote on machines without Internet connectivity

Possible solutions:

  1. Bundle vscode-server for major platforms together with the extension
  2. Have an option within the Remote extension to download vscode-server for the remote machine's platform, and scp vscode-server to the remote machine prior to installation
containers feature-request

Most helpful comment

Hey,
This would be great - Our entire network is on-premise without any internet access for security reasons.
We download all files in advance and copy them to the network after scanning them - that's how we update VSCode itself and any extension (.vsix files).
I'd like to add that even a very simple solution would suffice as a start:

  1. When trying to connect to a server, after failing to download the server side - just prompt the full download url.
  2. Allow an option similar to "Install from .vsix", and let us just point at the tarball location on the host (to be copied to the server with scp). This option will help for those who can setup a VM with same configuration as the offline server, and just copy the downloaded file to the offline host (without copying long download urls).

I know it's far from perfect, but it'll give a very good temporary solution :)

Thanks a lot for a great extension!

All 7 comments

This would be really great. Because of security most of our machines are not internet connected.

Hey,
This would be great - Our entire network is on-premise without any internet access for security reasons.
We download all files in advance and copy them to the network after scanning them - that's how we update VSCode itself and any extension (.vsix files).
I'd like to add that even a very simple solution would suffice as a start:

  1. When trying to connect to a server, after failing to download the server side - just prompt the full download url.
  2. Allow an option similar to "Install from .vsix", and let us just point at the tarball location on the host (to be copied to the server with scp). This option will help for those who can setup a VM with same configuration as the offline server, and just copy the downloaded file to the offline host (without copying long download urls).

I know it's far from perfect, but it'll give a very good temporary solution :)

Thanks a lot for a great extension!

I also would love to see this done. As, I have limited internet access on AWS local redhat machine.

Another customer here with the same issue. VSCode is packaged by internal IT and approval requested, after approval software appears in Software and developers can install. The Remote extension is approved separately and placed in an internal software repository (product name not important). All docker/npm/nuget are retrieved from here and not the internet. Once the remote extension is installed it will need to connect to a host. Now the host or the client will not have internet access to download vscode-server (as detailed in this excellent answer: - https://stackoverflow.com/questions/56718453/using-remote-ssh-in-vscode-on-a-target-machine-that-only-allows-inbound-ssh-co/56781109#56781109). At the moment, we are failing a "Remote attach", capturing the Commit ID, making a request for someone to download the vscode-server to the repository. It would be great if we knew the CommitID of the vscode-server when IT packaged vscode as they could package the server element at the same time. Currently everything breaks when someone upgrades vscode, which means people dont upgrade! @chrmarti

The commit id is the same as for VS Code. That can be lookup in VS Code under Help > About.

Discussed this further @ross-p-smith and the offline scenario would be greatly simplified if:

  • There were download links for the server(s) on code.visualstudio.com too.
  • There was an easy way for placing the server tars locally so they get picked up by the Remote-Containers extension.

A server tar can be manually placed in the local filesystem at <tmpdir>/vsch/<commitid>/<filename>.tar.gz. Where <tmpdir> is the temp folder given in one of the TMPDIR, TMP or TEMP env variables.

A simpler approach would be allow-listing the hostnames needed for downloading the server tars. See https://code.visualstudio.com/docs/setup/network and https://github.com/microsoft/vscode-docs/issues/3818. update.code.visualstudio.com and az764295.vo.msecnd.net might be sufficient for the server download.

The first time we are connecting to docker container using vscode the first message is Installing server:

  • image

It spends 2 large minutes in my case.

It could be great if we have an option to pre-built this step Installing server early
e.g. from Dockerfile to build the image with vscode-server installed

So, the first time that we will connect the time will be just a few seconds instead.

@ross-p-smith you can get the commit ID from Help > About or from code -v

Was this page helpful?
0 / 5 - 0 ratings