本文最后更新于1 分钟前,文中所描述的信息可能已发生改变。
1、什么是code-server?
code-server 是一个可以在远程服务器上运行 VS Code 的工具
2、code-server 的目标是什么?
code server 的目标是为开发者构建一个便捷统一的开发环境,让开发者能从任意设备、任意位置通过浏览器来进行代码的编写。从而免去了常规的 IDE 开发流程中的环境搭建的问题。
3、基于docker,容器化运行code-server
一、安装docker
二、生成自定义code-server镜像
因为使用code-server的初衷是在任何地方都能写python代码,所以需要将python环境集成进去,就想着自己基于centos7的基础镜像做一个整合了自己需要的环境的remote vscode环境。
1)下载code-server
centos安装包github地址:https://github.com/coder/code-server/releases 目前最新版本为:3.12.0
所以下载 code-server-3.12.0-amd64.rpm2
2)寻找合适的centos镜像
https://hub.docker.com/_/centos 这里使用centos:73
准备python3.7
压缩包下载地址: https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tar.xz4 将准备好的python
和 code-server
的文件放在dockerfile
同目录下新建Dockerfile
:
bash
vim dockerfile
添加如下内容:
Dockerfile
FROM centos:7
#复制code-server的安装文件到 /home 目录下
COPY ./code-server-3.12.0-amd64.rpm /home
#复制python文件到 /usr/local/python3目录下
COPY ./Python-3.7.12.tar.xz /usr/local/python3/Python-3.7.12.tar.xz
#安装python需要的依赖环境
RUN yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
#设置当前目录为/usr/local/python3
WORKDIR /usr/local/python3
#安装python
RUN tar -xvJf Python-3.7.12.tar.xz
WORKDIR /usr/local/python3/Python-3.7.12
RUN ./configure --prefix=/usr/local/python3 && make && make install
#备份python 为pythonbak 链接新安装的python3 到python pip3到pip
RUN mv /usr/bin/python /usr/bin/pythonbak && ln -s /usr/local/python3/bin/python3.7 /usr/bin/python && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
#替换yum文件的python为python2
RUN sed -i '1s/python/python2/g' /usr/bin/yum && sed -i '1s/python/python2/g' /usr/libexec/urlgrabber-ext-down
#安装code-server
RUN rpm -i /home/code-server-3.12.0-amd64.rpm
#安装code-server需要的openssl依赖
RUN yum install openssl -y
#删除复制及解压的文件及目录,减小镜像体积
RUN rm -rf /usr/local/python3/Python-3.7.2.tar.xz /home/code-server-3.12.0-amd64.rpm /usr/local/python3/Python-3.7.12
#暴露8080 端口
EXPOSE 8080
#设置当前的工作目录为下
WORKDIR /home/coder/workspace
#自定义登陆密码
ENV PASSWORD 123123123
#locale 设置中文, user-data-dir 设置用户数据存储的目录, auth设置登陆验证方式为password会使用环境变量中的 $PASSWORD 为密码, config 设置配置文件的目录, cert设置证书为空
ENTRYPOINT ["code-server","--locale","zh-cn","--host","0.0.0.0","--port","8080", "--user-data-dir", "/home/coder", "--auth", "password", "--config", "/home/coder/config/config.yaml", "--cert",""]
3)生成镜像
使用docker build
命令根据Dockerfile
生成镜像,默认自动存到本地镜像库
bash
docker build -t codeserver . -t 指定生成的镜像名称
4)运行镜像:
docker run -itd -p 8088:8080 -v $PWD/project:/home/coder --name codeserver codeserver -itd
- -i 以交互模式运行容器,通常与 -t 同时使用;
- -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -d 后台运行容器,并返回容器ID;
- -p 端口映射 外部端口:容器端口
- -v 映射目录到容器中
$PWD
取当前目录的project
目录映射为容器中的/home/coder
- –name 设置容器运行时的名称
5)查看运行状态
bash
docker ps -a | grep codeserver