云原生玩家往往都是左手 MacBook,右手 Goland,但由于大部分人的 MacBook 硬件资源有限,基本上无法丝滑地使用 Goland。即使你是 8C16G 的高富帅,多开几个 PornHub 标签页也会撑不住的,许多人不得不忍痛转向 VSCode

现在我要告诉你们一个重大好消息:Goland 竟然有网页版了!

有了网页版之后,我们就可以直接在 Linux 环境中调试应用了,那感觉真叫一个酸爽啊。只要你的远程机器资源充足,可以随意给网页版 Goland 分配 CPU 和内存资源,想象一下,你拥有一个 16C32G 的网页版 Goland,而且这 16C32G 都是 Goland 独占的,那该有多幸福!

部署方法闭着眼睛也能猜到了,官方直接提供了 Docker 镜像,一把梭跑起来就完事了,项目地址:

  • https://github.com/JetBrains/projector-docker[1]

官方提供的部署命令比较简单,不太适合实际使用,还需要加点参数才能真正用起来。由于我有丰富的 Kubernetes 集群资源,就直接部署在 Kubernetes 中了,本文也只讲解 Kubernetes 的部署方式,如果你是通过 docker-compose 或直接用 docker 部署,可以参考我的方案自己修改。

官方镜像最大的问题是没有安装 golang 的 SDK 环境,但是我也不想自己再重新构建镜像了,就直接使用 Kubernetes 的持久化存储来解决了。同时 Goland 自身的配置和 Go 项目所在的目录都要持久化,不然 Pod 重启就玩完了。好在所有持久化的东西都在 /home/projector-user 目录下,存储直接挂载到这个目录就行了。

先准备一个 Deployment 资源清单:

# projector-goland.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: project-data
spec:accessModes:- ReadWriteOnceresources:requests:storage: 100Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:name: projector-golandlabels:app: projector-goland
spec:replicas: 1selector:matchLabels:app: projector-golandtemplate:metadata:labels:app: projector-golandspec:containers:- name: projector-golandimage: registry.jetbrains.team/p/prj/containers/projector-golandimagePullPolicy: IfNotPresentvolumeMounts:- mountPath: /etc/localtimename: localtime- mountPath: /home/projector-username: project-dataimagePullSecrets:- name: regcredvolumes:- name: localtimehostPath:path: /etc/localtime- name: project-datapersistentVolumeClaim:claimName: project-data
---
apiVersion: v1
kind: Service
metadata:name: projector-golandlabels:app: projector-goland
spec:selector:app: projector-golandports:- protocol: TCPname: httpport: 80targetPort: 8887

如果你的 Kubernetes 集群没有对接后端分布式存储,可以使用 hostPath 代替,然后将 Pod 调度到指定的节点。

使用资源清单创建应用实例:

$ kubectl apply -f projector-goland.yaml

查看是否创建成功:

$ kubectl get pod -l app=projector-goland
NAME                                READY   STATUS    RESTARTS   AGE
projector-goland-7dcc58f964-9p7xw   1/1     Running   0          3m38s$ kubectl get svc -l app=projector-goland
NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
projector-goland   ClusterIP   10.106.190.178   <none>        80/TCP    3m38s

如果你能够????直接访问集群的 Service IP,就可以直接通过 Service IP 访问 Goland 网页版了:

经过一番设置之后,最后激活进入主界面:

激活方法我就不介绍了,大家自己想办法。

接下来你可以从本地的 Goland IDE 导出插件和配置:

将备份拷贝到容器中:

$ kubectl cp settings.zip projector-goland-7dcc58f964-9p7xw:/home/projector-user/settings.zip

在网页版 Goland 中依次点击 Configure -> Import Settings

选择备份配置:

点击 OK 开始导入:

最后选择 Shutdown 关闭容器进程,稍后 Pod 中的进程会原地重启,Pod 不会被销毁重建:

点击 reconnect 重新连接:

下面还需要做一些额外的操作,因为官方的镜像默认没有安装 golang 的 SDK 环境,在线下载需要叉叉上网,所以最好还是先手动下载:

$ wget https://mirrors.ustc.edu.cn/golang/go1.16.2.linux-amd64.tar.gz

然后再拷贝到容器中:

$ kubectl cp go1.16.2.linux-amd64.tar.gz projector-goland-7dcc58f964-9p7xw:/home/projector-user/go1.16.2.linux-amd64.tar.gz

进入容器解压 sdk:

$ kubectl exec -it projector-goland-7dcc58f964-9p7xw -- bash
projector-user@projector-goland-7dcc58f964-9p7xw:/$ cd ~
projector-user@projector-goland-7dcc58f964-9p7xw:/$ mkdir sdk
projector-user@projector-goland-7dcc58f964-9p7xw:/$ tar zxvf go1.16.2.linux-amd64.tar.gz -C sdk

访问 Goland 网页版,依次点击右下角的 Configure -> Settings -> Go -> GOROOT,点击 Add SDK,选择 local:

选择 sdk 路径,然后点击 OK:

点击 Apply,然后再点击 OK:

点击 Go Modules,勾上 Enable Go modules integrationVgo excutable 选择 Project SDK,然后点击 OK:

至此网页版 Goland 就配置完成了:

从此以后躺在家里吃灰的 iPad 就可以拿来写代码了。。。

如果你无法拉取官方的镜像,可以从我这边获取,关注公众号:


公众号后台回复 goland 即可获取 goland 网页版镜像。

参考资料

[1]https://github.com/JetBrains/projector-docker

往期推荐

分库分表这样玩,可以永不迁移数据、避免热点

为什么阿里不允许用Executors创建线程池,而是通过ThreadPoolExecutor的方式?

为什么培训班出来的程序员总遭人嫌弃?

996、过劳死都见过了!“被猝死”还是头一回......

诡异!MyBatis的Insert方法一直返回"-2147482646"?

听过云原生玩家都关注了他

后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具

只需一条命令,连 ssh 都不需要!

喜欢的这里报道

↘↘↘

真香!使用 Goland 网页版实现真正的云开发相关推荐

  1. win11真香(预览版上手体验)

    很荣幸,在我在我师父的帮助下,我拿到了win11预览版的体验资格,同时也参加了win11的预览体验计划,成为了第一批使用win11真香系统的一员.我并没有使用虚拟机测试安装,而是直接选择实体机安装,幸 ...

  2. 网页版全景图服务器搭建,云服务器全景图

    云服务器全景图 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源.在精简视图中,您可以快速获取弹性云服务器基本信息.登录信息.配置信息.监控信息.精 ...

  3. Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis+ElementUI

    鸿鹄云架构[系统管理平台]是一个大型 企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于 模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术 (Sprin ...

  4. 环境共享已支持公众号网页登录云开发控制台

    自云开发支持跨账号环境(资源)共享以来,受到了广大开发者的喜爱. 环境共享即一个小程序的云开发资源可以授权共享给同主体下多个其他小程序 / 公众号使用,无论其他小程序/公众号是否已开通云开发:环境共享 ...

  5. 真香!微软将为Edge浏览器带来超好用的全新侧边搜索功能:无需跳转网页

    作者:okay 源自:扩展迷EXTFANS 在传统的浏览器中,每当我们在浏览网页的时候想要查询其中的一些内容,就需要复制关键词到地址栏,或打开一个新的搜索引擎页面. 包括在Chrome插件商店中非常流 ...

  6. ID打包低版本_网页打包app 变色龙云低成本app制作真香实战

    网页打包app 变色龙云低成本app制作真香实战 走在大街上,几乎人手一部智能手机,频频低头看手机的人更是比比皆是,人们在沟通.社交.娱乐等活动中也越来越依赖于手机App软件.随之,越来越多的公司和个 ...

  7. 弘辽科技:淘宝特价版,阿里“一元更香”与拼多多“真香”的较量

    原标题<弘辽科技:淘宝特价版,阿里"一元更香"与拼多多"真香"的较量> 淘宝特价版和拼多多的拉锯战,再次释放出互联网流量见顶.存量竞争愈发激烈的信号 ...

  8. imagex使用方法_Microsoft OneDrive 的使用心得,真香

    一.OneDrive 账号 1. 免费用户只有5GB,这显然是不够的: 2. 可以通过购买 Office 365 获得 1TB 空间: 3. 可以通过教育邮箱获得免费 3-5TB 空间,这个是真香的方 ...

  9. 苹果推出网页版Apple Music 浏览器上听音乐 这波操作有点迟?

    据外媒消息,苹果公司发布了Apple Music的全新网页版,目前公测已开始,订阅用户可以在浏览器上登录Apple Music,而无须安装app.对此,相关苹果发言人表示,Apple Music fo ...

最新文章

  1. 无法在证书存储区中找到清单签名证书的解决办法
  2. Rancher 1.5全面发布!
  3. C#中运行命令行截取输出流的例子
  4. 1.9 多态性:什么是多态?
  5. 【MM 模块】 Optimized Purchasing 优化采购 3
  6. Java PropertyPermission equals()方法与示例
  7. 机械专业中的计算机应用系统,计算机在机械行业中的应用
  8. 【Spark】SparkStreaming-提交到集群运行
  9. Lesson 1#13 作业
  10. bzoj1396 识别子串
  11. Python创建二维数组
  12. 在CentOS7上使用LXC管理容器
  13. Echart3绘制世界地图连线中国城市
  14. 32位w7怎么升64位|w7系统32位升级64位教程
  15. 如何快速实现数组/字符串的逆序(用reverse函数实现)
  16. 送书 | 火遍日本 IT 界的「鱼书」终出续作!!!!
  17. c#创建画布_c# GDI+简单绘图(四) 简易画板功能
  18. 简单几步让iOS提醒事项和Micosoft To Do同步
  19. aps软件诠释精益制造的三个概念
  20. 要求车牌所有权,法院怎么判?

热门文章

  1. 一个严重损坏Excel深度修复案例
  2. 万网稳居国内域名主机网站榜首 西部数码第二
  3. golang 结构体和数据库表字段 反射自动映射 sqlmapper库 简介
  4. java seam 框架简介
  5. linux top 报错 TERM environment variable not set.
  6. docker strace ptrace 报错 Operation not permitted 解决方法
  7. linux 内核模块(驱动) 编译详解
  8. linux c daemon 程序后台运行函数
  9. ps -aux 状态详解
  10. MSSql存储过程高效应用