遇见时光

Keep Looking , Don't Settle
Stay Hungry , Stay Foolish

Code-Server容器部署VScode Online并配置语言环境

本部署教程是在腾讯云搭载2G,2核的Ubuntu 20.04轻量级服务器上进行实现的。


Docker 部署 Code-Server

首先需要在你的用户下新建~/.config配置文件:

1
mkdir -p ~/.config

Docker部署Code-Server应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# This will start a code-server container and expose it at http://127.0.0.1:8888.
# 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.
# set the password with ********
docker run -it --name code-server -p 127.0.0.1:8888:8080 \
-v "$HOME/.config:/home/coder/.config" \
-v "$PWD:/home/coder/project" \
-u "$(id -u):$(id -g)" \
-e "DOCKER_USER=$USER" \
-e PASSWORD=******** \
codercom/code-server:latest

通过我们之前部署的Nginx Proxy Manager进行反向代理,同时不要忘记去腾讯云开放防火墙端口,使用coder.mydomain.com进行访问,输入密码登录:

rocky

安装合适的插件,比如简体中文的语言包扩展、主题扩展和语言扩展等:

rocky


配置 Code-Server 语言环境

首先我们使用命令进入环境:

1
sudo docker exec -it code-server bash

注意:此时的code-server应用内部是一个独立的Debian环境

我们需要先更新apt-get并安装vim

1
2
sudo apt-get update
sudo apt-get install vim

因为个人需要,所以Code-Server部署了Python、Java和Go的语言环境,所以以下对部署的细节进行说明:

  • Python 环境配置:

安装 Python3:

1
sudo apt install python3

如果输入python命令出现bash: python: command not found,则需创建软链接:

1
2
3
4
# 我的版本是python3.9
ln -s /usr/bin/python3.9 /usr/bin/python
# 验证
python

安装插件:

扩展商店里选择名为Python的插件进行安装即可。


  • Java 环境配置

首先我们选择安装插件:

rocky

接着会提示我们没有jdk环境,我们选择Install new JDK,然后选择JDK-11进行下载,则此时浏览器会将安装包下载到本地,即得到OpenJDK11U-jdk_x64_linux_hotspot_11.0.15_10.tar,我们将压缩包上传到服务器的用户目录下,然后进行解压:

1
2
3
mkdir java
cd java
tar -zxvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.15_10.tar

java文件夹复制到code-server容器中:

1
2
cd ..
sudo docker cp java $容器id:/usr/local

进行Docker容器查看复制情况,并修改Docker内的Java环境变量:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo docker exec -it code-server bash
cd /usr/local && ls

# 修改/etc/profile配置文件
sudo vi /etc/profile

# 然后将以下内容写入文件的最后
## Java ENV
JAVA_HOME=/usr/local/java/jdk-11.0.15+10
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

# 编辑后保存配置,并进行检查
source /etc/profile
java -version

最后在插件的界面选择Install from Existing JDK,然后选择/usr/local/java/jdk-11.0.15+10目录即可,此时就可以编译java文件了:

1
2
3
4
5
6
/* project/demo.java */
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}

打开下面的终端进入cd project,然后执行java demo.java就可以得到输出了。


  • Go 环境配置

首先在宿主机上安装Go环境,从这里下载最新的安装包:

1
2
3
# 将安装包上传的用户的目录
# 下载的压缩包解压到/usr/local
sudo tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz

不同于bash,使用zsh则需要另外配置到~/.zshrc文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 编辑/etc/profile
sudo vi /etc/profile
# 将下面内容增加到最后一行中
## Go ENV
export PATH=$PATH:/usr/local/go/bin

# 保存配置并生效
source /etc/profile

# 配置到~/.zshrc中
sudo vi ~/.zshrc
# 进行如下图配置并保存
source ~/.zshrc

# 此时可以查看Go的环境
go version

rocky


Code-Server容器配置Go环境:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 将Go的文件夹复制到code-server容器中
sudo docker cp /usr/local/go $容器id:/usr/local

# 进入容器
sudo docker exec -it code-server bash
# 修改/etc/profile配置文件
sudo vi /etc/profile

# 然后将以下内容写入文件的最后
## Go ENV
export PATH=$PATH:/usr/local/go/bin

# 编辑后保存配置,并进行检查
source /etc/profile
go version

最后我们在安装Go的插件,在扩展商店搜索Go,找到第一个进行安装,然后编写Go文件:

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("hello world")
}

然后右下角会提示安装Go其他相关的插件,点击Install all,由于代理的原因,一般会安装失败,此时我们需要修改代理:

1
2
3
# 打开终端输入
go env -w GO111MODULE=on
go env -w GOPROXY=https://proxy.golang.com.cn,direct

关闭vscode重新打开,再次点击install all则可以成功安装插件;打开终端进入cd project,然后执行go run demo.go就可以得到输出了。


  • Code Runner安装

最后安装Code Runner,选择扩展设置中的Executor Mapsettings.json中进行编辑,然后对于一个文件,可以直接右击Run Code或者使用快捷键Ctrl+Alt+N可以直接运行对应文件。

rocky

大爷,赏点?