Docker部署code-server
版本:codercom/code-server:v2
code-server可以放在服務器上,隨時隨地在瀏覽器中,編寫代碼、運行、調試;
手機,pad都可以進行;
先說下問題:
- 插件版本落后於vscode,部分插件需要手動安裝舊版;
- 多種方法測試,不能直接部署中文,需要部署完成,手動安裝中文插件(中文插件需要修改package.json的版本為1.39.2);
- 本次部署的插件,都是提前解壓安裝之后的插件目錄,且都是舊版插件,以防不支持;
- 當然,你也可以直接拉取docker鏡像,再進code-server手動搭建環境;
- 具體舊版插件如何下載,可以自行百度,有需要可以交流;
准備文件
需要的環境准備好,打成鏡像直接復制進去,同時配置環境變量(未加入python環境)
drwxr-xr-x. 6 root root 92 12月 17 16:49 apache-maven-3.6.0
-rwxr-xr-x. 1 root root 948 12月 19 13:06 Dockerfile
drwxr-xr-x. 21 root root 4096 12月 19 11:59 extensions
drwxr-xr-x. 8 root root 4096 12月 19 09:11 jdk1.8.0_162
drwxr-xr-x. 6 root root 46 12月 19 09:16 scala-2.11.12
-rwxr-xr-x. 1 root root 1582 12月 19 13:02 settings.json
Dockerfile
FROM codercom/code-server:v2
# ADD
ADD jdk1.8.0_162 /usr/local/jdk1.8.0_162/
ADD apache-maven-3.6.0 /usr/local/apache-maven-3.6.0/
ADD scala-2.11.12 /usr/local/scala-2.11.12/
# code-server總配置文件
ADD settings.json /root/.local/share/code-server/User/
# code-server已安裝的插件
ADD extensions /root/.local/share/code-server/extensions
# Env
ENV JAVA_HOME /usr/local/jdk1.8.0_162
ENV JRE_HOME /usr/local/jdk1.8.0_162/jre
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV SCALA_HOME /usr/local/scala-2.11.12
ENV MAVEN_HOME=/usr/local/apache-maven-3.6.0
ENV PATH=$MAVEN_HOME/bin:$SCALA_HOME/bin:$PATH
WORKDIR /home/coder/project
# 容器啟動code-server:指定插件目錄,指定中文,指定免密登錄
ENTRYPOINT ["code-server","-locale","zh-cn","--auth","none"]
制作image
$ docker build -t cstor/code-server:v2 --rm=true .
啟動容器
$ docker run -dit --restart=always --privileged=true --name code -p 8086:8080 -h master -u root -v /root/code-server:/home/ cstor/code:v2
code-server啟動命令參數
如果使用docker,這些參數可以作為Dockerfile中最后執行的命令的參數;
一般使用:
# 在docker中,code-server
$ code-server --auth none --port 8086 --bash-path .
所有命令參數:
Options
--locale <locale> # 設置語言,不裝插件,此項沒用;裝了插件,不需要配置此項;
--user-data-dir <dir> # 設置用戶目錄 默認/root/.local/share/code-server/User
-v --version
-h --help
--telemetry # 不知道
--extra-builtin-extensions-dir# 沒用
--extra-extensions-dir # 沒用
--base-path # 默認/root/.local/share/code-server
--cert
--cert-key
--format
--host # 主機
--auth # 默認是給一個隨機密碼,"--auth none"免密
--open # 啟動自動打開瀏覽器
--port # 端口
--socket # 主機:端口
# 插件管理
--extensions-dir <dir> # 插件目錄 默認/root/.local/share/code-server/extenstions
--list-extensions # 終端列出插件
--show-versions
# 命令行安裝插件,需要插件id或者離線vsix,沒啥用,插件id要從vscode市場去找
--install-extension <extension-id | path-to-vsix>
--uninstall-extension <extension-id>
# 錯誤排查
--log <level> # 日志路徑
--max-memory # 最大分配內存
IDE內部配置
參考VSCode的使用方法
setteings.json
左下角齒輪——》setting——》右上角轉為使用json文件來配置設置
全局所有設置,都可以在這里實現
{
// Nomal
"editor.fontSize": 18,
"workbench.iconTheme": "vscode-icons",
"vsicons.dontShowNewVersionMessage": true,
"editor.minimap.enabled": true,
"workbench.colorTheme": "Visual Studio Light",
"workbench.startupEditor": "newUntitledFile",
// 保存格式化
"files.autoSave": "onFocusChange",
"editor.formatOnPaste": true,
"editor.formatOnType": true,
// Env
"java.home": "/usr/local/jdk1.8.0_162",
"maven.executable.path": "/usr/local/apache-maven-3.6.0/bin/mvn",
"java.configuration.maven.userSettings": "/usr/local/apache-maven-3.6.0/conf/settings.xml",
"maven.terminal.customEnv": [
{
"environmentVariable": "JAVA_HOME",
"value": "/usr/local/jdk1.8.0_162"
}
],
"python.formatting.provider": "yapf",
"python.autoComplete.addBrackets": true,
"python.jediEnabled": false,
"python.linting.pylintEnabled": true,
// exclude file
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true,
"**/.vscode": true,
"**/.empty": true,
},
// code-runner
"code-runner.clearPreviousOutput": true,
"code-runner.runInTerminal": false,
// 執行文件的腳本,可以使用絕對路徑
"code-runner.executorMap": {
"python": "/usr/local/anaconda3/python3",
"scala": "/usr/local/scala-2.11.12/bin/scala",
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
},
}
插件
總體來說:插件市場是跟隨VSCode,code-server是落后於VSCode版本的;
理論上直接market安裝,但不保證能正常工作;
-
如果缺少依賴,可嘗試在插件目錄中
npm install
重新安裝 -
如果版本不匹配,比如:插件版本是1.40,但是code-server只是1.39.2版本
只需要將插件離線下載,打開,找到packge.json文件,修改里面的版本為1.39.2即可;
創建Maven工程
ctrl+shift+p
是所有命令的總入口
比如創建maven工程:
ctrl+shift+p
輸入:maven
選項:
Maven:create maven project # 創建maven工程
Maven:execute commands # 執行maven命令,插件
鏡像打包
容器生成新鏡像
docker commit -a "runoob.com" -m "my apache" [容器ID] [生成鏡像名]
鏡像保存為文件
docker save -o [文件名] [要保存的鏡像名]
文件生成鏡像
docker load < [文件名]
啟動鏡像
docker run -dit --restart=always --privileged=true --name code -p 8086:8080 -h master -u root -v /root/code-server:/home/ cstor/code:v2