在VS Code中连接远程Docker容器进行开发
责任编辑:
一颗赛艇
时间:2021-04-27
来源:原创
责任编辑:
一颗赛艇
时间:2021-04-27
来源:原创
在进行软件开发或测试中,运行的系统环境十分重要,比如C++这类语言的编译,有时引用的依赖库较多时,不同版本间可能存在或多或少的问题。又或者软件的服务器部署,涉及到集群计算,需要快速地部署多个计算接口时,采用容器作为解决方案也是不错的选择。最近在运行一些程序时,在本地环境安装上遇到了不少的坑,后面发现采用Docker环境是个不错的选择,因为大部分的开源程序都会提供Dockerfile,一方面在代码提交时方面持续集成测试,另一方面也可以对软件进行快速部署。下面以clif的远程开发测试环境构建为例。
本地环境
操作系统:Win10 Pro 19042.928
代码编辑IDE:VS Code (插件:Remote Development开发套件,Docker,C/C++等)
安装的软件:Docker (安装参见https://www.docker.com/products/docker-desktop),WSL 2 (这里尽管没有用到,开启参见https://docs.microsoft.com/zh-cn/windows/wsl/install-win10)等
远程环境
操作系统:Ubuntu 18.04 Server
安装的软件:Docker (安装参见https://docs.docker.com/engine/install/),Git等
操作步骤
远程服务器上的操作:
- 构建docker镜像,这里通过clif的github仓库内的dockerfile文件进行构建,具体参见https://docs.docker.com/engine/reference/commandline/image_build/
- 由创建的镜像构建容器,
docker run -ti image_tag bash
,(也可以加参数设置后台运行),这样,远程的环境至此就搭建好了
当然,这里对于如何连接远程服务器,配置连接密钥等就不做赘述了,网路上相关的资料应该很多。
注意:这里需要对远程环境上的docker的用户权限进行配置,让非root用户也能对docker进行操作,具体参见https://docs.docker.com/engine/install/linux-postinstall/
本地系统上的操作:
- 通过VS Code 的 Remote-SSH 插件连接远程服务器,具体操作参见https://code.visualstudio.com/docs/remote/ssh
- 同样地,将Docker等VS Code插件安装在远程服务器上,这样Docker中可以看见目前已经启动的容器。
- 同样的,在远程套件栏中的Containers里面也能看到可以连接的容器。点击容器名旁边的连接按钮即可在VS Code中像打开一个本地目录一样进入该容器。
- 至此,对于该软件的环境构建就完成了,可在该容器环境内进行代码的编写、编译、测试等。可以完美地向在本地或远程主机上一样的在远程容器内进行开发工作,省去了繁杂的环境搭建工作,为开发节约大量的时候。
来源:原创