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:latest
Hoặ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