前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 GitHub Codespaces 加速 Elixir 开发环境工作速度

使用 GitHub Codespaces 加速 Elixir 开发环境工作速度

作者头像
Cloud-Cloudys
发布2024-02-20 10:01:22
1200
发布2024-02-20 10:01:22
举报

前言

使用 Elixir 开发点小玩意的时候,面对经常需要走外网下载依赖 (Elixir 的镜像站 UPYUN 使用有时候也经常抽风) 的时候,为了避免需要不断的进行网络代理配置,有想到之前经常使用 GitHub Codespaces 来在浏览器里面通过云环境来写博客文章,也可以做点开发:

第一次连接一般会看到: ? Welcome to Codespaces! You are on our default image.

? To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P or F1).

? Edit away, run your app as usual, and we’ll automatically make it available for you to access.

使用 GitHub Codespaces 甚至也能直接提交代码到 GitHub 仓库之中。通过 vscode 插件 GitHub Codespaces,能通过本地 IDE 连接云端的环境进行开发。GitHub 提供了免费使用的额度,足够白嫖了?。如果有将 vscode 的配置同步到 GitHub,也可以在一定程度复用本地 IDE 的配置。

通过 https://github.com/codespaces/new 我们能配置 GitHub 使用的环境规格和部署地区:

加速 Elixir 开发环境

Elixir 应用构建拉依赖经常需要走外网,但 GitHub 默认创建的 Codespaces 环境默认一般都是 js 的开发环境 Dockerfile,并没有 Elixir 环境,需要我们自己单独配置一手,好在提供了 devcontainer 的形式供我们自定义自己的基础开发环境,我们只需要提供配置文件就好, 我们需要做的如下:

  • 1、GitHub 仓库创建 .devcontainer 目录;
  • 2、.devcontainer 下的 devcontainer.json 文件声明开发环境配置;

示范仓库如: https://github.com/yeshan333/erlang_elixir_asdf_ubuntu_container/tree/main/.devcontainer

代码语言:javascript
复制
{
  "image": "ghcr.io/yeshan333/erlang_elixir_asdf_ubuntu_container:latest",
  "customizations": {
    "vscode": {
      "extensions": ["jakebecker.elixir-ls"]
    }
  },
  "postCreateCommand": "git config --global core.fileMode false"
}

通过 image 字段,我们直接声明了 GitHub Codespaces 使用的 Docker 镜像,extensions 指定了要启用哪些 vscode 插件,postCreateCommand 制定了环境起来之后要跑的 shell 命令。甚至于也可以指定我们自己写的 Dockerfile 来启动 GitHub Codespaces 环境,可参考:https://github.com/devcontainers/images/blob/main/src/go/.devcontainer/devcontainer.json

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-2-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 加速 Elixir 开发环境
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com