docker部署code-server實(shí)現(xiàn)在線開(kāi)發(fā)

1返弹、前言

本文記錄了通過(guò)docker锈玉、docker-compose部署code-server、mysql,搭建在線開(kāi)發(fā)環(huán)境的過(guò)程义起,綜合體驗(yàn)很爽拉背,適合小規(guī)模開(kāi)發(fā)團(tuán)隊(duì)使用。

下一步準(zhǔn)備逐步嘗試結(jié)合git默终、jenkins椅棺、java代碼檢查犁罩、sql代碼檢查、k8s两疚、helm床估,實(shí)現(xiàn)一套在線開(kāi)發(fā)、代碼評(píng)審诱渤、編譯丐巫、打包、測(cè)試勺美、部署的devops递胧。

安裝環(huán)境:
vmware hypervision、centos 8

2励烦、安裝docker

# 獲取阿里云yum鏡像文件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
# 非阿里云主機(jī)需要替換地址
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升級(jí)系統(tǒng)
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、準(zhǔn)備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,
    // 執(zhí)行文件的腳本坛掠,可以使用絕對(duì)路徑
    "code-runner.executorMap": {
        "python": "/usr/local/anaconda3/python3",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
    },
}

5赊锚、編輯Dockerfile文件

vs code的插件建議自行在官方市場(chǎng)下載后,放到extensions目錄。
下載地址:
https://marketplace.visualstudio.com/

Java開(kāi)發(fā)環(huán)境常用插件如下:

名稱(chēng) 說(shuō)明
beautify 代碼美化插件
Chinese (Simplified) Language Pack for Visual Studio Code 中文語(yǔ)言包
Debugger for Java 關(guān)鍵插件屉栓,java debug插件
GitLens git增強(qiáng)插件舷蒲,可以很方便看到代碼的提交修改記錄,還至此在代碼行提示代碼的變更信息
Java Test Runner java測(cè)試插件
Language Support for Java(TM) by Red Hat 關(guān)鍵插件友多,支持java語(yǔ)言
Maven for Java 關(guān)鍵插件牲平,java maven插件
Visual Studio IntelliCode 關(guān)鍵插件,代碼自動(dòng)提示插件
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
# 容器啟動(dòng)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

如果團(tuán)隊(duì)多人一起協(xié)同開(kāi)發(fā)昂儒,建議每個(gè)人部署一個(gè)code-server容器,實(shí)現(xiàn)環(huán)境隔離委可。
配合github/gitee/gitlab等代碼管理服務(wù)器使用渊跋。

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運(yùn)行coder容

docker-compose up -d
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末着倾,一起剝皮案震驚了整個(gè)濱河市拾酝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卡者,老刑警劉巖蒿囤,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異崇决,居然都是意外死亡蟋软,警方通過(guò)查閱死者的電腦和手機(jī)镶摘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)岳守,“玉大人凄敢,你說(shuō)我怎么就攤上這事∈。” “怎么了涝缝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)譬重。 經(jīng)常有香客問(wèn)我拒逮,道長(zhǎng),這世上最難降的妖魔是什么臀规? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任滩援,我火速辦了婚禮,結(jié)果婚禮上塔嬉,老公的妹妹穿的比我還像新娘玩徊。我一直安慰自己,他們只是感情好谨究,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布恩袱。 她就那樣靜靜地躺著,像睡著了一般胶哲。 火紅的嫁衣襯著肌膚如雪畔塔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天鸯屿,我揣著相機(jī)與錄音澈吨,去河邊找鬼。 笑死寄摆,一個(gè)胖子當(dāng)著我的面吹牛谅辣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冰肴,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼屈藐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榔组!你這毒婦竟也來(lái)了熙尉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤搓扯,失蹤者是張志新(化名)和其女友劉穎检痰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锨推,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铅歼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年公壤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椎椰。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厦幅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出慨飘,到底是詐尸還是另有隱情确憨,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布瓤的,位于F島的核電站休弃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏圈膏。R本人自食惡果不足惜塔猾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稽坤。 院中可真熱鬧丈甸,春花似錦、人聲如沸慎皱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茫多。三九已至祈匙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間天揖,已是汗流浹背夺欲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留今膊,地道東北人些阅。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像斑唬,于是被迫代替她去往敵國(guó)和親市埋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359