docker部署code-server实现在线开发

1、前言

本文记录了通过docker、docker-compose部署code-server、mysql,搭建在线开发环境的过程,综合体验很爽,适合小规模开发团队使用。

安装环境:
vmware hypervision、centos 8

2、安装docker

# 获取阿里云yum镜像文件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
# 非阿里云主机需要替换地址
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
# 重建 yun cache
yum clean all
yum makecache
# 使用yum升级系统
yum update  --nobest

#删除旧的docker
sudo yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest                   docker-latest-logrotate                   docker-logrotate                   docker-engine

# 安装最新版的containerd.io
dnf install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/nightly/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

#安装Yum源管理工具
yum install -y yum-utils device-mapper-persistent-data lvm2

#安装阿里云的docker-ce源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

#安装docker-ce

yum install docker-ce docker-ce-cli

#配置docker 镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://heusyzko.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3、安装 docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

4、准备vs的settings.json配置文件

vi settings.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_261",
    "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_261"
        }
    ],
    "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",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
    },
}

5、编辑Dockerfile文件

vs code的插件建议自行在官方市场下载后,放到extensions目录。
下载地址:
https://marketplace.visualstudio.com/

Java开发环境常用插件如下:

名称说明
beautify代码美化插件
Chinese (Simplified) Language Pack for Visual Studio Code中文语言包
Debugger for Java关键插件,java debug插件
GitLensgit增强插件,可以很方便看到代码的提交修改记录,还至此在代码行提示代码的变更信息
Java Test Runnerjava测试插件
Language Support for Java™ by Red Hat关键插件,支持java语言
Maven for Java关键插件,java maven插件
Visual Studio IntelliCode关键插件,代码自动提示插件
FROM codercom/code-server:latest
# COPY JDK和MAVEN
COPY jdk1.8.0_261 /usr/local/jdk1.8.0_261/
COPY apache-maven-3.6.3 /usr/local/apache-maven-3.6.3/
# code-server配置文件 插件
 COPY extensions /root/.local/share/code-server/extensions/
 COPY settings.json /root/.local/share/code-server/User/
# Env
ENV JAVA_HOME=/usr/local/jdk1.8.0_261 \
    JRE_HOME=/usr/local/jdk1.8.0_261/jre \
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin \
    CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib \
    MAVEN_HOME=/usr/local/apache-maven-3.6.3

ENV PATH=$MAVEN_HOME/bin:$PATH

WORKDIR /home/coder/project
# 容器启动code-server:指定插件目录,指定中文,指定免密登录
ENTRYPOINT ["code-server","--locale","zh-cn","--host","0.0.0.0","--port","8080", "--user-data-dir", "/home/coder","--cert",""]

6、build 自定义docker image

docker build -t boshine/code-server:latest --rm=true .

7、编辑docker-compose

如果团队多人一起协同开发,建议每个人部署一个code-server容器,实现环境隔离。
配合github/gitee/gitlab等代码管理服务器使用。

version: "3"

services:
  luocoder:
    container_name: luocoder
    image: boshine/code-server
    links:
      - db
    depends_on:
      - db
    ports:
      - "8080:8080"
      - "8088:8088"
    volumes:
      - "/root/code-server:/home/"
      - "/root/code-server/root:/root"
      - "/root/code-server/tmp:/tmp"
    environment:
      PASSWORD: 12345678
    restart: always
    privileged: true
    user: root

  db:
    container_name: mysql
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - "/root/mysql/data:/var/lib/mysql"
      - "/root/mysql/conf:/etc/mysql"
      - "/root/mysql/logs:/var/log/mysql"
    command: [
            '--character-set-server=utf8mb4',
            '--collation-server=utf8mb4_unicode_ci',
            '--max_connections=3000'
    ]
    environment:
      MYSQL_ROOT_PASSWORD: 12345678
    restart: always
    privileged: true
    user: root

8、使用docker-compose运行coder容

docker-compose up -d
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值