Bạn có thể build VS Code trên server linux và access vào VS code thông qua website
https://github.com/gitpod-io/openvscode-server
Docker
docker run -it --init -p 3000:3000 gitpod/openvscode-server
sudo -i
apt update
>>/home/openvscode-server/.ssh/id_rsa
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: openvscode-server
namespace: XXXXX-engines-prod
labels:
app.kubernetes.io/instance: openvscode-server
app.kubernetes.io/name: openvscode-server
spec:
replicas: 4
selector:
matchLabels:
app.kubernetes.io/instance: openvscode-server
app.kubernetes.io/name: openvscode-server
template:
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/instance: openvscode-server
app.kubernetes.io/name: openvscode-server
spec:
volumes:
- name: file-service
persistentVolumeClaim:
claimName: pvc-file-service-smb-1
containers:
- name: openvscode-server
image: gitpod/openvscode-server:latest
ports:
- name: http
containerPort: 3000
protocol: TCP
resources: {}
volumeMounts:
- name: file-service
mountPath: /app/downloaded
livenessProbe:
httpGet:
path: /
port: http
scheme: HTTP
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /
port: http
scheme: HTTP
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
nodeSelector:
kubernetes.io/os: linux
securityContext: {}
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
Helm chart
Ngoài ra bạn có thể sử dụng helm chart do Nim has writen.
helm repo add openvscode-server-helm https://mrnim94.github.io/openvscode-server-helm/ "openvscode-server-helm" has been added to your repositories helm search repo openvscode-server-helm NAME CHART VERSION APP VERSION DESCRIPTION openvscode-server-helm/openvscode-server 0.1.0 v1.74.2 A Helm chart for Kubernetes

Value mẫu
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/issuer: openvscode-server
cert-manager.io/issuer-kind: Issuer
nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri
nginx.ingress.kubernetes.io/auth-url: https://$host/oauth2/auth
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Origin "";
proxy_hide_header l5d-remote-ip;
proxy_hide_header l5d-server-id;
nginx.ingress.kubernetes.io/proxy-buffer-size: 8k
nginx.ingress.kubernetes.io/proxy-buffering: "on"
hosts:
- host: vscode.nimtechnology.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- hosts:
- vscode.nimtechnology.com
secretName: tls-oauth2-proxy-ingress
persistence:
enabled: true
persistentVolumeClaim:
workspace:
storageClass: "longhorn"
size: 5Gi
podSecurityContext:
fsGroup: 1000
Update ngày 24/06/2025
Mình cũng được tìm được các container docker tên là code-server
https://hub.docker.com/r/codercom/code-server
https://hub.docker.com/r/linuxserver/code-server
Nó có hỗ trợ sẵn bacsic authen để anh em có thể protect vscode server của anh em.
docker run -d \
--name=code-server \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e PASSWORD=password `#optional` \
-e HASHED_PASSWORD= `#optional` \
-e SUDO_PASSWORD=password `#optional` \
-e SUDO_PASSWORD_HASH= `#optional` \
-e PROXY_DOMAIN=code-server.my.domain `#optional` \
-e DEFAULT_WORKSPACE=/config/workspace `#optional` \
-e PWA_APPNAME=code-server `#optional` \
-p 8443:8443 \
-v /path/to/code-server/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/code-server:latestHoặc:
# This will start a code-server container and expose it at http://127.0.0.1:8080.
# It will also mount your current directory into the container as `/home/coder/project`
# and forward your UID/GID so that all file system operations occur as your user outside
# the container.
#
# Your $HOME/.config is mounted at $HOME/.config within the container to ensure you can
# easily access/modify your code-server config in $HOME/.config/code-server/config.json
# outside the container.
mkdir -p ~/.config
docker run -it --name code-server -p 127.0.0.1:8080:8080 \
-v "$HOME/.config:/home/coder/.config" \
-v "$PWD:/home/coder/project" \
-u "$(id -u):$(id -g)" \
-e "DOCKER_USER=$USER" \
codercom/code-server:latest