Run JetBrains Goland in the Browser with Kubernetes: Step‑by‑Step Guide
This article explains how to deploy JetBrains Goland's new web version using the Projector Docker image on a Kubernetes cluster, covering manifest creation, resource deployment, settings import, Go SDK setup, and final configuration for a fully functional browser‑based IDE.
Many cloud‑native developers use a MacBook with Goland, but limited hardware often forces a switch to VSCode. JetBrains now provides a web version of Goland via Projector, which can be run in a Linux environment.
The official Docker image registry.jetbrains.team/p/prj/containers/projector-goland can be deployed on Kubernetes. First create a PersistentVolumeClaim and a Deployment/Service using the following manifest:
# 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: 8887Apply the manifest: $ kubectl apply -f projector-goland.yaml Verify the pod and service:
$ kubectl get pod -l app=projector-goland
$ kubectl get svc -l app=projector-golandOnce the Service IP is reachable, open the Goland web UI, import your local settings (exported as settings.zip) via Configure → Import Settings , and copy the archive into the container:
$ kubectl cp settings.zip projector-goland-xxxx:/home/projector-user/settings.zipConfigure the Go SDK inside the web IDE. Because the official image lacks a Go SDK, download it on the host and copy it into the container:
$ 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-xxxx:/home/projector-user/
$ kubectl exec -it projector-goland-xxxx -- bash
$ mkdir sdk && tar zxvf go1.16.2.linux-amd64.tar.gz -C sdkIn the web IDE, set GOROOT to the extracted SDK path, enable Go modules, and apply the changes. After restarting the container, the Goland web version is ready for use, even on an iPad.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Programmer DD
A tinkering programmer and author of "Spring Cloud Microservices in Action"
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
