挺早就开始用vscode的容器开发了,极大的愉悦了我的开发体验:

1、不用再折腾windows下的很多配置问题了。

2、和生产环境完全一致的开发调试环境,最大限度地避免了因为环境引起的bug。

3、想玩游戏的时候,把docker一关,整个世界就清净了。

但是,最近的vscode两次更新,让容器内的vscode-server下载的时候无法再用代理了,初始化进程会一直卡在Start: Downloading VS Code Server这里

9621d3a6bc5dcd70495ce4154711a568.png

几经折腾,终于搞定了,所以记录如下:

1、根据官方文档,这个脚本用的代理环境和bashrc有些不同,需要设置为HTTPS_PROXY而不是https_proxy,也就是要设置成大写的。(这一条方案,有些网友在issues中提到说可以用了,但是我没成功)

2、终极方案:手动下载

2.1、看上图中卡住位置的commit ID,本次ff915844119ce9485abfe8aa9076ec76b5300ddd,把这个id替换下面的地址中的commit:ID

https://update.code.visualstudio.com/commit:ff915844119ce9485abfe8aa9076ec76b5300ddd/server-linux-x64/stable

2.2、进入容器中,在~/.vscode-server目录下,先删除之前的bin目录

docker exec -it xxx bash
root@xxx:~# cd ~/.vscode-server
root@xxx:~/.vscode-server# rm bin -r -f

2.3、重建一个bin目录,然后进入在建立一个commitID的目录

root@xxx:~/.vscode-server# mkdir bin
root@xxx:~/.vscode-server# cd bin
root@xxx:~/.vscode-server/bin# mkdir ff915844119ce9485abfe8aa9076ec76b5300ddd
root@xxx:~/.vscode-server/bin# cd ff915844119ce9485abfe8aa9076ec76b5300ddd
root@xxx:~/.vscode-server/bin/ff915844119ce9485abfe8aa9076ec76b5300ddd# 

2.4、wget手动下载

wget -nv -O vscode-server-linux-x64.tar.gz https://update.code.visualstudio.com/commit:ff915844119ce9485abfe8aa9076ec76b5300ddd/server-linux-x64/stable

2.5、解压缩

tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1

2.6、在vscode中重新连接容器。

享受吧。

注意:这里有一个小坑,新版的vscode在自动下载的时候,会在bin/ff915844119ce9485abfe8aa9076ec76b5300ddd这个id目录的后面添加一个时间戳,所以手动下载安装的时候不要把文件弄到那个有时间戳的目录里面去。

最后放出资料来源的回答帖子:

https://stackoverflow.com/questions/56718453/ssh-with-vscode-without-internet​stackoverflow.com

批处理内容如下

1、先把vscode-server-linux-x64.tar.gz复制或者下载到/tmp/vscode-server-linux-x64.tar.gz

然后进入容器执行以下代码(记得修改commitID)

commitID=d69a79b73808559a91206d73d7717ff5f798f23c
cd ~/.vscode-server
rm bin -r -f
mkdir bin
cd bin
mkdir $commitID
cd $commitID
cp /tmp/vscode-server-linux-x64.tar.gz vscode-server-linux-x64.tar.gz   
tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐