Docker部署code-server

Docker部署code-server

版本:codercom/code-server:v2java

code-server能夠放在服務器上,隨時隨地在瀏覽器中,編寫代碼、運行、調試; 手機,pad均可以進行;python

先說下問題:docker

  1. 插件版本落後於vscode,部分插件須要手動安裝舊版;
  2. 多種方法測試,不能直接部署中文,須要部署完成,手動安裝中文插件(中文插件須要修改package.json的版本爲1.39.2);
  3. 本次部署的插件,都是提早解壓安裝以後的插件目錄,且都是舊版插件,以防不支持;
  4. 固然,你也能夠直接拉取docker鏡像,再進code-server手動搭建環境;
  5. 具體舊版插件如何下載,能夠自行百度,有須要能夠交流;

準備文件

須要的環境準備好,打成鏡像直接複製進去,同時配置環境變量(未加入python環境)shell

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中最後執行的命令的參數;apache

通常使用:npm

# 在docker中,code-server
$ code-server --auth none --port 8086 --bash-path .

全部命令參數:json

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文件來配置設置bash

全局全部設置,均可以在這裏實現服務器

{
    // 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安裝,但不保證能正常工做;

  1. 若是缺乏依賴,可嘗試在插件目錄中npm install從新安裝

  2. 若是版本不匹配,好比:插件版本是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
相關文章
相關標籤/搜索