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插件
GitLens git增強插件,可以很方便看到代碼的提交修改記錄,還至此在代碼行提示代碼的變更信息
Java Test Runner java測試插件
Language Support for Java(TM) 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM