icon

KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。

icon

了解详情

icon

欢迎加入

扫码加入微信群,和云原生大佬们一起探讨云原生和不可描述的事情!

扫码加入微信群

Please enable Javascript to view the contents

Goland 网页版使用教程

使用 Goland 网页版实现远程开发

 ·  ☕ 3 分钟  ·  ✍️ 米开朗基杨 · 👀... 阅读

狗云

Sealyun Kubernetes 一键离线安装 走,看看去!

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

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

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

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

官方提供的部署命令比较简单,不太适合实际使用,还需要加点参数才能真正用起来。由于我有丰富的 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:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: projector-goland
  labels:
    app: projector-goland
spec:
  replicas: 1 
  selector:
    matchLabels:
      app: projector-goland
  template:
    metadata:
      labels:
        app: projector-goland
    spec:
      containers:
      - name: projector-goland 
        image: registry.jetbrains.team/p/prj/containers/projector-goland
        imagePullPolicy: IfNotPresent 
        volumeMounts:
        - mountPath: /etc/localtime
          name: localtime
        - mountPath: /home/projector-user
          name: project-data 
      imagePullSecrets:
      - name: regcred
      volumes:
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: project-data 
        persistentVolumeClaim:
          claimName: project-data 
---
apiVersion: v1
kind: Service
metadata:
  name: projector-goland 
  labels:
    app: projector-goland
spec:
  selector:
    app: projector-goland
  ports:
    - protocol: TCP
      name: http
      port: 80
      targetPort: 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 网页版镜像。

-------他日江湖相逢 再当杯酒言欢-------
分享
您的鼓励是我最大的动力
alipay QR Code
wechat QR Code

米开朗基杨
作者: 米开朗基杨 ❉
云原生搬砖师


目录