随时准备好编码的云开发环境

这是一个提供在线开发环境的 K8s 应用程序,通过配置文件可以快速地为 GitHub、GitLab 上的项目,创建一个集成了在线 IDE、库、依赖项等工具的在线开发环境。

特征

  • 「开发环境即代码」- Gitpod 应用从基础设施即代码中吸取的经验教训。启动开发环境可以轻松重复和重现,能够在整个团队中实现自动化、版本控制和共享开发环境。
  • 「预构建的开发环境」- Gitpod 不断预构建所有 git 分支,类似于 CI 服务器。
  • 「集成 Docker 构建」- Gitpod 根据你的 Docker 镜像立即在云中启动一个容器。项目所需的工具很容易安装和配置。
  • 「GitLab、GitHub 和 Bitbucket 集成」- Gitpod 无缝集成到你的工作流程中,并与所有主要 git 托管平台(包括 GitHub、GitLab 和 Bitbucket)配合使用。
  • 「集成代码审查」- 使用 Gitpod,你可以对任何 PR/MR 进行本机代码审查。无需再切换上下文,也无需将同事的 PR/MR 弄乱你的本地计算机。
  • 「协作」- 邀请团队成员加入你的开发环境或拍摄开发环境的任何状态快照,以便与团队异步共享。

快速开始

C 快速入门

第 1 步:克隆 Git 存储库

基于 C 模板创建一个新的存储库。将其命名为例如 my-c-template。

第 2 步:安装 Gitpod 应用程序

Gitpod 的 GitHub 应用程序类似于 CI 服务器,并将持续为你的所有分支和拉取请求准备预构建 - 因此当想要开始编码时,无需等待从互联网安装依赖项。

第 3 步:首先预构建

通过在存储库的 URL 中添加https://gitpod.io#prebuild/前缀来启动你的第一个预构建工作区。修改后的网址为:https://gitpod.io/#prebuild/https://github.com/<github_username>/my-c-template在启动工作区之前, Gitpod 通过运行.gitpod.ymlinit 文件中的命令来显示预构建进度状态。稍后,当你在分支上创建新工作区或拉取/合并请求时,工作区加载速度会更快,因为所有依赖项都已下载并且代码已编译。

第 4 步:享受准备编码的乐趣

第一次预构建运行后,Gitpod 将在工作区中启动一个自动化且完全配置的开发人员环境,现在可供进行开发。

Gitpod 中的 Java

安装依赖项

  • 更新 Java 版本
sdk list java- 查看可用的java版本
sdk install java 18.0.1.fx-zulu- 安装特定版本
  • 更新 Maven 版本
sdk list maven- 查看可用的 Maven 版本
sdk install maven 3.8.6- 安装特定版本
  • 更新 Gradle 版本
sdk list gradle- 查看可用的 gradle 版本
sdk install gradle 7.4.1- 安装特定版本

设置自定义 Dockerfile

为了确保 Gitpod 工作区始终以正确的依赖项启动,请配置 Dockerfile:

  • 创建一个.gitpod.yml
touch .gitpod.yml
  • 创建自定义 Dockerfile
touch .gitpod.Dockerfile
  • 在文件中引用你新创建的 Dockerfile.gitpod.yml
image:
    file: .gitpod.Dockerfile
  • 更新你的.gitpod.Dockerfile 以安装依赖版本
FROM gitpod/workspace-full

USER gitpod

RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh && \
    sdk install java 17.0.3-ms && \
    sdk default java 17.0.3-ms"

  • 提交并推动两者 gitpod.yml 并且.gitpod.Dockerfile
git commit -m "configuring gitpod with java" && git push
  • 从分支启动一个新的工作区并提交.gitpod.Dockerfile
  • 测试你的依赖关系在新工作区中是否正确
sdk current

传送门

开源地址:https://github.com/gitpod-io/gitpod

-END-

相关推荐

  • 浅谈JVM运行期的几种优化手段
  • 大模型遇见社会科学:从“人的社会”到“AI的社会” 的研究 | 中文信息处理实验室探寻AI与社会科学结合研究的新视角
  • CCL24评测火热报名:中文意合图语义解析评测
  • 哈尔滨工业大学(深圳)计算机学院陈科海老师招收硕博研究生
  • [开源]一款电子合同产品,提供一站式数据安全的合同签署解决方案
  • 接口安全十一招,招招真香!
  • 北京/苏州内推 | 微软亚洲互联网工程院招聘NLP/LLM方向算法实习生
  • MetaGPT推出全新工作:打破数据壁垒,挑战机器学习建模流程,数据科学家或将被取代?
  • 我们距离GPT-4V真的很近了吗?
  • 每日prompt:沙丘风格的巨物迷恋
  • 首个全自主AI软件工程师Devin来了|GPT-4.5 Turbo要来了?
  • GPT-4.5 Turbo疑曝光;全球首个AI软件工程师发布;Llama 3训练集群细节披露丨AIGC大事日报
  • 硅谷“逼死”AI学术圈
  • 华为手机逆势狂飙背后:四年3万多个专利,突破重重封锁
  • 涨薪无望闷声发小财,做这个副业入账2.5W+
  • 远程热部署的落地与思考-动态编译篇
  • 【收藏】工业物联网常用协议及使用场景
  • 5.8K Star GitHub顶流,100万用户的互联网操作系统
  • 从零开始的K均值聚类
  • Kimi Chat ——愿称之为国内最好用的AI办公助手!