Docker部署code-server

版本:codercom/code-server:v2

code-server可以放在服务器上,随时随地在浏览器中,编写代码、运行、调试;

手机,pad都可以进行;

先说下问题:

  1. 插件版本落后于vscode,部分插件需要手动安装旧版;
  2. 多种方法测试,不能直接部署中文,需要部署完成,手动安装中文插件(中文插件需要修改package.json的版本为1.39.2);
  3. 本次部署的插件,都是提前解压安装之后的插件目录,且都是旧版插件,以防不支持;
  4. 当然,你也可以直接拉取docker镜像,再进code-server手动搭建环境;
  5. 具体旧版插件如何下载,可以自行百度,有需要可以交流;

准备文件

需要的环境准备好,打成镜像直接复制进去,同时配置环境变量(未加入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安装,但不保证能正常工作;

  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

Docker部署code-server的更多相关文章

  1. docker 部署 jenkins server

    1. 拉取一个jenkins 镜像 docker pull jenkins 2. 创建与jenkins配置目录对应的,容器外的,文件目录,并修改相应的权限 mkdir /home/jenkins ch ...

  2. Docker部署Sql Server 2019实践

    1. 拉取SqlServer2019镜像 sudo docker pull mcr.microsoft.com/mssql/server:2019-latest 2. 创建容器+挂载: sudo do ...

  3. 使用 Docker 部署 Seata Server(分布式事务解决方式)

    1.获取镜像 ## 使用下面命令获取最新版本的镜像,此时我的版本是1.3.0 ## 或者可以使用docker pull seataio/seata-server:latest获取最新的镜像 docke ...

  4. Docker搭建VS Code Server ,设置访问密码随时随地写代码

    今天在N1盒子上安装了 VS Code Server,简单的记录一下. 安装docker Docker一键安装脚本 $ sudo wget -qO- https://get.docker.com/ | ...

  5. Docker 安装部署Sql Server

    前言 在如今,容器化概念越来越盛行,.Net Core项目也可以跨平台部署了,那么思考下Sql Server能不能呢?当然是可以的啦.本文今天就是介绍Docker部署配置和连接Sql Server.本 ...

  6. 使用Docker部署Spring-Boot+Vue博客系统

    在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...

  7. 如何使用Docker部署PHP开发环境

    本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是 ...

  8. Linux实战(20):非docker部署ELK

    部署环境: Elasticsearch:7.5.2 Kibana:7.5.2 Logstash:7.5.2 filebeat:7.5.2 redis:最新版 部署方式:rpm+二进制包 使用架构 软件 ...

  9. 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用

    一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...

  10. Elastic:为Elastic Docker部署设置安全

    文章转载自:https://elasticstack.blog.csdn.net/article/details/105710973 创建docker-compose.yml 在之前的教程中,那里使用 ...

随机推荐

  1. Python - Django - 添加作者

    在 book_list.html 的页面下方加上 “添加作者” 的链接 <!DOCTYPE html> <html lang="en"> <head& ...

  2. jquery iframe取得元素与自适应高度

    总结一下iframe在jquery中怎么操作的,下面我来给各位介绍jquery 获取iframe子/父页面的元素及iframe在jquery高度自适应实现方法,各位朋友可参考. jquery方法: 在 ...

  3. python面向对象内置方法关于属性篇

    1.关于__xxxattr__之__getattr__.__setattr__.__delattr__ 2.关于__xxxitem__之__getitem__.__setitem__.__delite ...

  4. maven项目创建.m2文件夹

    创建为.m2.,m2前后都要有点,然后去掉后面的点 settings.xml文件如下: <?xml version="1.0" encoding="UTF-8&qu ...

  5. AWS 核心服务概述(二)

    目录 AWS网络服务 VPC Direct Connect Route53 AWS 计算服务 EC2 EMR(Elastic MapReduce) AWS Lambda Auto Scaling El ...

  6. charles 高级批量请求

    本文参考:charles 高级批量请求 这个我感觉有点鸡肋,真正的批量请求,推荐使用JMter charles 高级批量请求就是下面这种简单的设置的 简单的使用还是可以的; 比如简单的测试下,向某一个 ...

  7. MyBatis框架总结

    一. MyBatis简介 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...

  8. python条件判断if/else - python基础入门(8)

    生活中我们总是面临各种选择,选择不同,结果也不同,不管我们是否愿意,总会有结果,有的快乐,也有的痛苦…… 鲁迅说:人只要有钱,烦恼就会减掉90%以上,情商智商也会提高,更不会乱发火!(关键是:钱怎么来 ...

  9. 2、head 标签学习

     5秒自动刷新 <meta http-equiv="refresh" content="5,url:http://www.baidu.com" /> ...

  10. 深度图转伪彩色图(python)

    kinect得到的深度图灰不拉几,人眼很难识别出其中的物体,感知深度的变化. 在做展示的时候,我们往往需要可视化,使用OpenCV的预定义的颜色映射来将灰度图像伪彩色化,在OpenCV中使用apply ...