相关文章推荐

Github CodeSpaces 使用及定制化

Intro

Github 最近推出了很多令人兴奋的新功能,最近使用了 Github CodeSpaces,觉得还是挺不错的,CodeSpaces 相当于自己有了一个云主机,真正实现了云端开发,CodeSpaces 和 Github 做了很好的集成,可以很方便的针对 Github 项目做修改,而且可以根据自己的需要自定义服务器配置和环境,很多开源项目已经集成了 CodeSpaces 的支持,可以很方便的在线开发。

我们以 asp.net core 的项目为例,来建一个 Codespaces,ASP.NET Core 已经实现了较好的 Codespaces 支持,我们可以直接使用 Codespaces 来对 ASP.NET Core 的源码进行编译和贡献。

Github 针对 CodeSpaces 提供了支持,在原来克隆仓库的地方多了一个使用 Codespaces 的选项

新建之后,就会开始创建一个容器来运行我们的 codespace

在上面的截图中可以看到,我们也可以在本地的 VSCode 中打开 codespace,这需要我们本地 VSCode 安装一个 Github CodeSpaces 插件即可,但是既然要云端开发在本地打开干嘛呢,还是完全在云端更能体现其优势吧

等待容器构建完成后就会进入到我们的 codespace 中,第一次创建的话会执行一个脚本,执行完成后,我们就可以编译自己想要编译的项目了,这里我选择了一个较小的一个项目 Localization 项目,在 对应的目录下执行 dotnet build 来编译项目,可以看到成功编译通过了

如果你要给微软提 PR,就可以很方便的进行编译测试自己的变更,完全是在云端进行,不需要在本地安装任何环境,而且在创建 Codespace 之后也不需要安装任何环境,在创建 Codespace 的过程中就完成所需环境的安装配置(通常要提 PR 的话,需要先 Fork 原始的项目,在自己 Fork 的项目上创建 Codespace,然后再来修改和提交更新)

再回到 asp.net core 项目之后,我们就可以在 Codespaces 处看到我们刚才创建的 Codespace 了,我们再次打开就不再需要重新创建了,之前做的变更也会保留下来

定制 CodeSpaces

Codespaces 默认的配置会支持绝大多数语言,会安装很多很多环境,针对大多数项目来说是可以拿来即用的,但是对于某一些项目可能支持不太好,比如说,现在默认是没有 .NET 6 的 SDK 的,.NET 6 目前还是预览版,目前默认配置并没有 .NET 6 的环境,如果你的项目是 .NET 6 的,那可能就要自定义 Codespace 的环境了

Codespace 是以容器技术为基础的,运行在微软的 Azure 虚拟机之上的,第一次根据配置创建容器之后会把当前项目克隆下来并根据配置初始化 VS Code,安装必要的插件等

要自定义 Codespace 的配置,有多种方式,整体环境配置就是配置容器,有三种方式,可以直接指定要使用的镜像,也可以提供一个自定义的 Dockerfile 去构建,也可以通过 docker-compose 来创建一个稍微复杂一些的环境

而且我们可以配置 VS Code 需要的插件,还可以暴露端口到公网上

要自定义 Codespace 的配置,我们可以通过在项目根目录下创建一个 .devcontainer 目录,在此目录下创建一个 devcontainer.json 配置所需的配置,具体的配置项目可以参考下面的示例和  VS Code 的文档 <https://code.visualstudio.com/docs/remote/devcontainerjson-reference>

如果不确定配置是不是正确,可以在本地用 VS Code 来测试,需要安装 Remote Container 插件,然后在 Remote Container 中打开项目即可测试了

Samples

Docker-Image

首先我们来看一个最简单的示例,自定义镜像,示例配置如下:

"image": "mcr.microsoft.com/dotnet/sdk:6.0",     // Install needed extensions     "extensions": [         "ms-dotnettools.csharp",         "davidanson.vscode-markdownlint"

上面的 image 就是指定我们使用镜像, extensions 是我们 VS Code 中想要安装的插件

Dockerfile

再来看一个 Dockerfile 的示例,在 .devcontainer 目录中添加一个 Dockerfile

FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine
RUN apk add git

devcontainer.json

"name": "CodeSpace",     "dockerFile": "Dockerfile",     // Install needed extensions     "extensions": [         "ms-dotnettools.csharp",         "davidanson.vscode-markdownlint"

上面的 dockerFile 就是配置的自定义 Dockerfile(也可以使用 build.dockerfile 来指定 Dockfile, 默认的 Dockerfile 构建时上下文是配置文件所在目录,如果需要可以配置 context 或者 build.context 来配置构建上下文)

Docker-compose

接着我们来看一个 docker-compose 的示例,和 Dockerfile 类似的,我们在 .devcontainer 目录下添加一个 docker-compose.yml 文件

version: '3.7'
services:
  dev-container:
    image: mcr.microsoft.com/dotnet/sdk:6.0-alpine
    volumes:
      - ..:/workspace:cached
    depends_on:
      - redis
    links:
      - "redis:redis"
    environment:
      - 'App_ConnectionStrings__Redis=redis'   
    command: /bin/sh -c "while sleep 1000; do :; done"
  redis:
    image: redis:6.2-alpine

然后在 devcontainer.json 文件中配置使用 docker-compose

"name": "CodeSpace",     "service": "dev-container",     "dockerComposeFile": [           "docker-compose.yml"     "extensions": [         "ms-dotnettools.csharp"

这里项目里依赖 redis,所以在 compose 文件中声明了一个 redis 容器,这样我们在代码里也可以使用这个 redis 来做测试了

Port-forward

我们也可以指定 port-forward,这样就可以通过一个公网域名来访问 codespace 里的服务了,配置示例如下 forwardPorts

"name": "Codespace",     "dockerFile": "Dockerfile",     "forwardPorts": [80, 5000], // [codespace-id]-[port].githubpreview.dev     "extensions": [         "ms-dotnettools.csharp",         "davidanson.vscode-markdownlint"

使用 dotnet run 运行项目之后,就可以通过公网访问了

可以看到 5000 端口当前是 active 的,我们就可以通过 5000 端口对应的链接来访问了(如果想要临时添加某一个端口,直接通过上面的 Add Port 来配置就可以了),效果如下:

这样就有了一个公网可以访问的服务了

Codespaces 标准化了开发环境,其他人需要编译时不需要再安装这个安装那个,使用同样的环境开发运行就可以了,统一了开发环境,而且基于云端,性能还不错,即使没有电脑在身边,甚至也是可以通过手机来操作的,非常的方便,而且环境都是配置好的,去网吧写个代码还要装环境呢,这下好了,啥环境都不用装了

如果你的开源项目也希望别人功能来参与功能,强烈推荐为你的项目提高较好的 CodeSpaces 贡献体验,现在 ASP.NET Core、 .NET Runtime 、StackExchange.Redis 以及其他很多开源项目已经提供了 CodeSpaces 的支持,上面的示例也是来自于我的几个开源项目配置,可以参考文末的参考链接

目前个人用户有数量限制,如果达到限制了可以删除之前的 Codespace, 所有的 Codespaces 可以在 https://github.com/codespaces 看到

Codespaces 还有很多功能强大的配置就不一一细说了,可以自己去了解一下

References

  • https://github.com/features/codespaces

  • https://docs.github.com/en/codespaces/getting-started/quickstart

  • https://docs.github.com/en/codespaces/getting-started/deep-dive

  • https://code.visualstudio.com/docs/remote/create-dev-container#_use-docker-compose

  • https://github.com/microsoft/vscode-dev-containers

  • https://code.visualstudio.com/docs/remote/devcontainerjson-reference

  • https://www.telerik.com/blogs/introduction-github-codespaces

  • https://github.com/WeihanLi/dotnet-httpie/blob/dev/.devcontainer/devcontainer.json

  • https://github.com/WeihanLi/SparkTodo/tree/master/.devcontainer

  • https://github.com/WeihanLi/WeihanLi.Redis/tree/dev/.devcontainer

  • https://code.visualstudio.com/docs/remote/containers-tutorial

  • https://code.visualstudio.com/docs/remote/containers

  • https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-codespaces-for-your-account#dotfiles

  • https://github.com/microsoft/vscode-dev-containers/tree/main/containers/codespaces-linux

Github CodeSpaces 使用及定制化IntroGithub 最近推出了很多令人兴奋的新功能,最近使用了 Github CodeSpaces,觉得还是挺不错的,CodeSpace...
Github 最新推出的 Code spaces 可以实现基于 VS Code 的云端代码编译。云端开发不能更美好了,用上 Code spaces 后,不仅可以把 IDE 卸载掉,什么 Conda、 Docker 都可以删了。 原创文章 25获赞 6访问量 1957 展开阅读全文 作者:椰卤工程师
目录 Github Education Pack 申请流程进入官网点击get the pcak,登录到你的 github 账号登录后点击到上方导航栏的student点击Get benefits for student进入到申请页面上传证明学生身份的材料Education Pack中可以架wordpress网站的资源国际主流 云主机 平台对比阿里云腾讯云华为云UcloudAWS微软Azure Github E...
网站,无论在哪一个领域,都是无比重要的。要学会网站运营,首先得搭建一个网站。国内外有许多可以搭建网站的平台,比如国内的三种主流内容管理系统(CMS):phpcms、织梦、帝国。 国外的也是世界上 使用 最广泛的CMS:WordPress。 WordPress是一款可以让你搭建出色网站、博客或应用的开源软件。由于它功能强大,插件众多的优点,受到了许多 使用 者的欢迎。今天在这里只要介绍可以通过哪些国内...
GitHub 去年推出了一个 Code space 功能,提供线上的编程环境,可以编写或者运行 GitHub 仓库中的代码。但此功能一直处于内测阶段,未对外开放。 直到今天, GitHub 在 Twitter 上宣布 Code spaces 现在已经开放给 GitHub Teams 和 GitHub Enterprise Cloud 上的所有人 使用 ,可以为团队快速获得即用即付的托管开发环境。 如果满足资格的用户,可以在仓库的首页的 Code 按钮,看到这样的提示。 遗憾的是,此功能暂未对个人用户的仓库开放。.
R的 GitHub 代码空间配置 该存储库包含一个基本配置,该配置允许在中 它基于 官方 Github Code spaces 。 它包括和 VS Code 扩展。 它带有renv设置,其中包括启用后者扩展所需的languageserver软件包。 要安装它,请在 Code spaces 控制台中打开R并键入renv::restore() 。 根据您的需要调整配置 不同的R版本 此配置基于rocker/r-ver:4.0.0-ubuntu18.04 Docker 映像, rocker/r-ver:4.0.0-ubuntu18.04映像具有languageserver软件包所需的已安装依赖项。 您可以更改它,并 使用 .devcontainer/ Docker file中的选择之一替换当前映像。 检查是否有可用的选项。 请记住,当前的 Docker file适用于基于Ubuntu的映像。 在R中设置工作环境时,我强
2.到 github education pack申请网站去注册账号,点击中央的Get benefits for students Github education pack申请传送门 3.勾选Student,填写em...
GitHub 是全球最受欢迎的开发者平台,⾃从微软收购了 GitHub 后, GitHub 的功能就越来越强⼤,除了原有的代码管理外,也增加了很多硬货,这就包括了集成 CI/CD 的 GitHub Actions,以及完善的项⽬管理功能,还有⼀个云端的开发环境 GitHub Code Space。 GitHub Code spaces 并不只是⼀个简单的改改代码的编辑器,它还包含了⼀个完整开发环境,让你可以在云上开发完整的项⽬。 什么是 GitHub Code spaces GitHub Code spaces
GitHub Copilot是一款由 GitHub 开发的人工智能代码助手。要购买和 使用 GitHub Copilot,你需要具备 GitHub Copilot资格。虽然 GitHub Copilot可以免费试用60天,但要获得Copilot订阅资格,你需要提供信用卡信息[1]。 以下是购买和 使用 GitHub Copilot的教程: 1. 首先,你需要访问 GitHub Copilot的 官方 网站并注册一个 GitHub 账号(如果你还没有)。 2. 登录 GitHub 账号后,前往 GitHub Copilot的设置页面。 3. 在设置页面中,选择启用 GitHub Copilot,点击"Try Copilot free for 60 days"按钮[3]。 4. 接下来,会弹出付款计划选项,你可以选择按月付款或按年付款。选择适合你的付款计划后,继续操作,点击"Get access to GitHub Copilot"按钮[3]。 5. 在接下来的步骤中,你需要提供信用卡信息以完成购买过程[1]。 6. 完成购买后,你就可以开始 使用 GitHub Copilot了。它将为你提供智能的代码建议和自动补全功能,帮助你更高效地编写代码[2]。 希望这个教程对你有帮助!如果你在 使用 GitHub Copilot的过程中遇到任何问题,可以参考 官方 文档或向 GitHub 社区寻求帮助。
 
推荐文章