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
docker部署code-server实现在线开发的更多相关文章
- docker 部署 jenkins server
1. 拉取一个jenkins 镜像 docker pull jenkins 2. 创建与jenkins配置目录对应的,容器外的,文件目录,并修改相应的权限 mkdir /home/jenkins ch ...
- Docker部署Sql Server 2019实践
1. 拉取SqlServer2019镜像 sudo docker pull mcr.microsoft.com/mssql/server:2019-latest 2. 创建容器+挂载: sudo do ...
- 使用 Docker 部署 Seata Server(分布式事务解决方式)
1.获取镜像 ## 使用下面命令获取最新版本的镜像,此时我的版本是1.3.0 ## 或者可以使用docker pull seataio/seata-server:latest获取最新的镜像 docke ...
- 官宣!微软发布 VS Code Server!
北京时间 2022 年 7 月 7 日,微软在 VS Code 官方博客中宣布了 Visual Studio Code Server! 远程开发的过去与未来 2019 年,微软发布了 VS Code ...
- 如何使用Docker部署PHP开发环境
本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是 ...
- Docker搭建VS Code Server ,设置访问密码随时随地写代码
今天在N1盒子上安装了 VS Code Server,简单的记录一下. 安装docker Docker一键安装脚本 $ sudo wget -qO- https://get.docker.com/ | ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- 程序开发使用docker部署
我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...
随机推荐
- Jmeter(二十) - 从入门到精通 - JMeter监听器 -下篇(详解教程)
1.简介 监听器用来监听及显示JMeter取样器测试结果,能够以树.表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样,比如XML格式.CSV格式.默认情况下,测 ...
- 032_go语言中的定时器
代码演示 package main import "fmt" import "time" func main() { timer1 := time.NewTim ...
- Springboot快速入门篇,图文并茂
Springboot快速入门篇,图文并茂 文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!搜索关注微信公众号 [码出Offer] 领取各种学习资料! image-20 ...
- 使用DockerFile构建运行GoWeb
安装docker # 安装一些必要的系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加软件源信息 # ...
- DB2 分组查询语句ROW_NUMBER() OVER() (转载)
说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...
- C#LeetCode刷题之#31-下一个排列(Next Permutation)
目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4965 访问. 实现获取下一个排列的函数,算法需要将 ...
- Golang Gtk+3教程:开始
GTK+是一个控件工具包.每个通过GTK+创建的用户界面由一些控件组成. 控件是层级式的,window控件是主容器,通过在window中添加按钮.下拉菜单.输入字段等其他控件构成用户界面. 如果是复杂 ...
- Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7
1.eclipse中Maven项目的pom文件报错: 2.解决方法: 直接在pom.xml中加上一个依赖项目: <dependency> <groupId>jdk.t ...
- github Repository not found 解决办法
git pull的时候遇到下面的报错. remote: Repository not found fatal: repository 'https://github.com/MyRepo/projec ...
- Jmeter 常用函数(27)- 详解 __env
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 获取环境变量的值 语法格式 ${__e ...