挺早就开始用vscode的容器开发了,极大的愉悦了我的开发体验:
1、不用再折腾windows下的很多配置问题了。
2、和生产环境完全一致的开发调试环境,最大限度地避免了因为环境引起的bug。
3、想玩游戏的时候,把docker一关,整个世界就清净了。
但是,最近的vscode两次更新,让容器内的vscode-server下载的时候无法再用代理了,初始化进程会一直卡在Start: Downloading VS Code Server这里
几经折腾,终于搞定了,所以记录如下:
1、根据官方文档,这个脚本用的代理环境和bashrc有些不同,需要设置为HTTPS_PROXY而不是https_proxy,也就是要设置成大写的。(这一条方案,有些网友在issues中提到说可以用了,但是我没成功)
2、终极方案:手动下载
2.1、看上图中卡住位置的commit ID,本次ff915844119ce9485abfe8aa9076ec76b5300ddd,把这个id替换下面的地址中的commit:ID
https://update./commit:ff915844119ce9485abfe8aa9076ec76b5300ddd/server-linux-x64/stable
2.2、进入容器中,在~/.vscode-server目录下,先删除之前的bin目录
docker exec -it xxx bashroot@xxx:~# cd ~/.vscode-serverroot@xxx:~/.vscode-server# rm bin -r -f
2.3、重建一个bin目录,然后进入在建立一个commitID的目录
root@xxx:~/.vscode-server# mkdir binroot@xxx:~/.vscode-server# cd binroot@xxx:~/.vscode-server/bin# mkdir ff915844119ce9485abfe8aa9076ec76b5300dddroot@xxx:~/.vscode-server/bin# cd ff915844119ce9485abfe8aa9076ec76b5300dddroot@xxx:~/.vscode-server/bin/ff915844119ce9485abfe8aa9076ec76b5300ddd#
2.4、wget手动下载
wget -nv -O vscode-server-linux-x64.tar.gz https://update./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目录的后面添加一个时间戳,所以手动下载安装的时候不要把文件弄到那个有时间戳的目录里面去。
最后放出资料来源的回答帖子:
/questions/56718453/ssh-with-vscode-without-internet
批处理内容如下
1、先把vscode-server-linux-x64.tar.gz复制或者下载到/tmp/vscode-server-linux-x64.tar.gz
然后进入容器执行以下代码(记得修改commitID)
commitID=d69a79b73808559a91206d73d7717ff5f798f23ccd ~/.vscode-serverrm bin -r -fmkdir bincd binmkdir $commitIDcd $commitIDcp /tmp/vscode-server-linux-x64.tar.gz vscode-server-linux-x64.tar.gz tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1