vscode远程容器开发
之前在折腾HomeAssistant集成开发时接触到了VSCode的容器内开发,即使用容器构建开发环境,简化不同机器的开发环境的部署,确保团队环境一直,同时也方便了后修的测试。果然Docker是越用越爽。
再加上vscode的远程ssh连接模式,可以在不同的机器上统一连接到家中的服务器上,再使用这台机器去构建Docker容器,确保可在任意电脑上仅需安装vscode,就可以拥有统一的开发环境,这里就以hexo为例,记录下踩的那些坑。
插件安装
一共两个Remote Development
DEV containers
配置建立
项目根目录下创建.devcontiner
文件夹,然后是devcontiner.json
配置文件,这里详细的配置参照containers.dev的文档,下面贴出这里使用的配置
这里在运行参数里配置了网络和别名,方便之后做反代,但后来发现不需要,vscode自带了一个功能,可以映射容器内的任意端口到本机(也就是vscode运行的机器,不是Docker服务器),猜测是用ssh隧道实现的。
这里有几个坑要注意,
- 注意容器内用户和外部项目文件的用户一致,很多容器默认是root用户,我这里外面项目的用管理员账户,这会导致权限混乱,所以这里配置了
"containerUser": "node"
node是这个镜像的默认管理员用户id为1000 - 创建容器后,内部的git没有复制外部的私钥,导致私有仓库无法上传,所以这里git下载和提交还是在容器外进行的
"appPort": 4000
,这里指的docker自身的端口映射,但默认vscode是只映射到127.0.0.1上,远程访问还是不方便,而且这里修改local port host
为allInterfaces
在远程容器内也是无效的,具体看这个issues
vscode远程容器开发
https://www.kuanmi.top/2022/11/10/vscode-remote-containers/