真香!使用 Goland 网页版实现真正的云开发
云原生玩家往往都是左手 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 integration
,Vgo 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 网页版实现真正的云开发相关推荐
- win11真香(预览版上手体验)
很荣幸,在我在我师父的帮助下,我拿到了win11预览版的体验资格,同时也参加了win11的预览体验计划,成为了第一批使用win11真香系统的一员.我并没有使用虚拟机测试安装,而是直接选择实体机安装,幸 ...
- 网页版全景图服务器搭建,云服务器全景图
云服务器全景图 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源.在精简视图中,您可以快速获取弹性云服务器基本信息.登录信息.配置信息.监控信息.精 ...
- Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis+ElementUI
鸿鹄云架构[系统管理平台]是一个大型 企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于 模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术 (Sprin ...
- 环境共享已支持公众号网页登录云开发控制台
自云开发支持跨账号环境(资源)共享以来,受到了广大开发者的喜爱. 环境共享即一个小程序的云开发资源可以授权共享给同主体下多个其他小程序 / 公众号使用,无论其他小程序/公众号是否已开通云开发:环境共享 ...
- 真香!微软将为Edge浏览器带来超好用的全新侧边搜索功能:无需跳转网页
作者:okay 源自:扩展迷EXTFANS 在传统的浏览器中,每当我们在浏览网页的时候想要查询其中的一些内容,就需要复制关键词到地址栏,或打开一个新的搜索引擎页面. 包括在Chrome插件商店中非常流 ...
- ID打包低版本_网页打包app 变色龙云低成本app制作真香实战
网页打包app 变色龙云低成本app制作真香实战 走在大街上,几乎人手一部智能手机,频频低头看手机的人更是比比皆是,人们在沟通.社交.娱乐等活动中也越来越依赖于手机App软件.随之,越来越多的公司和个 ...
- 弘辽科技:淘宝特价版,阿里“一元更香”与拼多多“真香”的较量
原标题<弘辽科技:淘宝特价版,阿里"一元更香"与拼多多"真香"的较量> 淘宝特价版和拼多多的拉锯战,再次释放出互联网流量见顶.存量竞争愈发激烈的信号 ...
- imagex使用方法_Microsoft OneDrive 的使用心得,真香
一.OneDrive 账号 1. 免费用户只有5GB,这显然是不够的: 2. 可以通过购买 Office 365 获得 1TB 空间: 3. 可以通过教育邮箱获得免费 3-5TB 空间,这个是真香的方 ...
- 苹果推出网页版Apple Music 浏览器上听音乐 这波操作有点迟?
据外媒消息,苹果公司发布了Apple Music的全新网页版,目前公测已开始,订阅用户可以在浏览器上登录Apple Music,而无须安装app.对此,相关苹果发言人表示,Apple Music fo ...
最新文章
- 无法在证书存储区中找到清单签名证书的解决办法
- Rancher 1.5全面发布!
- C#中运行命令行截取输出流的例子
- 1.9 多态性:什么是多态?
- 【MM 模块】 Optimized Purchasing 优化采购 3
- Java PropertyPermission equals()方法与示例
- 机械专业中的计算机应用系统,计算机在机械行业中的应用
- 【Spark】SparkStreaming-提交到集群运行
- Lesson 1#13 作业
- bzoj1396 识别子串
- Python创建二维数组
- 在CentOS7上使用LXC管理容器
- Echart3绘制世界地图连线中国城市
- 32位w7怎么升64位|w7系统32位升级64位教程
- 如何快速实现数组/字符串的逆序(用reverse函数实现)
- 送书 | 火遍日本 IT 界的「鱼书」终出续作!!!!
- c#创建画布_c# GDI+简单绘图(四) 简易画板功能
- 简单几步让iOS提醒事项和Micosoft To Do同步
- aps软件诠释精益制造的三个概念
- 要求车牌所有权,法院怎么判?