github codespace的作用
github提供的codespace功能,实际上就是一台docker虚拟机(默认2核8GB内存32GB磁盘空间),且默认情况下,该虚拟机已经为我们默认安装了一些基础的开发环境,如java、python环境等等。
好处是该虚拟机位于外网,在编译各种软件时,可以通过极快的网速下载各种依赖,几乎不会出现像国内网络经常遇到的下载某个依赖失败的情况(Timeout)。
免费版版本的限制:
- codespace不能作为常驻服务器使用,因为一段时间不使用,就会自动关闭
- codespace可使用的资源(cpu,内存和磁盘)有限制,但是提供的资源几乎可以满足个人的绝大部分需求了
默认情况下,Github的codespace的虚拟机是一个Ubuntu系统,可能不一定能够满足我们的需求(比如说我们可能需要一个centos环境)。
幸运的是,codespace也支持自定义,因此我们可以自定义一套满足自身需求的codespace。
自定义codespace
自定义配置如下。
制定.devcontainer
在指定仓库中的根目录下,创建一个文件夹:.devcontainer
.
在该文件夹中创建两个文件。
devcontainer.json
,该文件用于声明容器的环境Dockerfile
,用于定义docker镜像
devcontainer.json
文件
下面就是devcontainer.json
的一个案例。
1 | { |
其中
name
用于声明docker容器的名字。build
制定如何构建镜像,这里选择使用Dockerfilesettings
,用于配置VSCode在docker容器中的默认配置extensions
,用于配置VSCode的扩展插件remoteUser
,用于指明登录该docker容器的用户
Dockerfile文件
Dockerfile
案例如下所示,和普通的Dockerfile
文件完全一样。
1 | # 使用 CentOS 作为基础镜像 |
将.devcontainer
推送到github仓库
将.devcontainer
文件夹及内部的文件作为一次修改,推送到github上的远程仓库中。
在github上创建容器
登录github,选择你上一步推送的仓库。
按照如下方式,开始创建自定义codespace。
在新弹出的页面中,进行如下选择。
其中:
branch
: 选择.devcontainer
所推送的那个分支Dev container configuration
,会自动解析devcontainer.json
中的name,并在此展示region
保持默认和Machine type
保持默认即可
点击Create codespace
即可在github上创建一个自定义的Docker容器。
打开codespace的方式
当codespace创建OK之后,github支持多种打开方式,常用的如下。
- 使用浏览器直接打开
- 使用VSCode打开 (需要本机安装VSCode,注意衍生的版本不行,如Cusor,VSCodium就不支持)