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