先看效果:
主界面,显示了你有那些工作空间
某个工作空间,我这里集成了web版vscode,也可以使用本地的vscode和其他开发IDE
有独立的终端和集成webide
以后就可以一个ipad都可以写代码了;
下面是平台搭建过程(有点乱大家将就看)
首先了解 terraform 是干什么的,否则不知道模板是干嘛的。
coder-oss: 自建在线云端开发服务平台 (gitee.com)
根据此项目进行部署,按实际情况调整相应参数即可,本项目中已经包含了coder-server(web版vscode) 和 coder-oss的两个必要插件(docker和coder)
有新版本更新后可以下载相应的版本二进制文件替换现有的版本,必须安装版本号创建相应的文件夹才能生效;
例如:plugins\coder\coder\0.8.3\linux_amd64\terraform-provider-coder_v0.8.3
plugins\kreuzwerker\docker\3.0.2\linux_amd64\terraform-provider-docker_v3.0.2
coder = {
source = "terraform.local/coder/coder"
version = "~> 0.8.3"
}
docker = {
source = "terraform.local/kreuzwerker/docker"
version = "~> 3.0.2"
}
terraform.local为本地 terraform 的访问路径
本项目也包含了两个模板 docker版本和docker-dotfiles_uri 版本,前者是完全自己构建项目开发空间,后者是自行构建空间同时拉取指定仓库的代码,使用指定的构建主容器镜像,以便更好、更方便的搭建开发环境
根据实际情况更改下面配置中的 目录映射地址和环境变量的参数
建议直接通过docker部署,不要使用 docker-compose,因为有虚拟交换机的问题,导致无法与创建的workspoace容器通讯,从而导致无法正常部署!
建议测试直接给容器docker用户权限,以便调用/var/run/docker.sock有权限。
CODER_HTTP_ADDRESS 必须设置设置外网访问地址建议直接写默认地址:0.0.0.0:3000
CODER_ACCESS_URL 绑定域名,外网访问必填,局域可填写ip地址http:// xxx.xxx.xxx.xxx:3000
CODER_UPDATE_CHECK 检查是否更新,建议否;需要更新直接去 docker.com 网站下载最新的二进制文件
CODER_PG_CONNECTION_URL pg数据库连接地址
registry.cn-hangzhou.aliyuncs.com/mycocker/coder:0.1 此容器是我自己构建的基础镜像,但是必须安装以下软件# curl git golang sudo vim wget
支持 docker 命令参数部署方式
docker run --rm -d --name=codeross --privileged=true --user 0 -p 3000:3000 -v /volume3/docker/coder_oss/config:/home/coder/.config -v /volume3/docker/coder_oss/terraform:/home/coder/.terraform.d -v /var/run/docker.sock:/var/run/docker.sock -e CODER_UPDATE_CHECK=false -e CODER_HTTP_ADDRESS="0.0.0.0:3000" -e CODER_ACCESS_URL="http://11.11.11.7:3000" -e CODER_PG_CONNECTION_URL="postgresql://postgres_user:postgre_pwd@11.11.11.7:5505/coder?sslmode=disable" registry.cn-hangzhou.aliyuncs.com/mycocker/coder:0.1
由于本人技术有限,自己只玩通了docker命令部署方式,docker-compose没有解决网络问题
支持 docker-compose 部署方式
docker-compose up -d
此方式需要解决生成的workspace工作空间容器需要访问到coder主容器,否则无法正常生成workspace工作空间容器,因为docker-compose.yml默认生成了一个网络,构建的workspace工作空间容器是使用的默认桥接网络。
模板:
1、通过命令行进入到templates\docker或者templates\docker-with-dotfiles中对模板进行修改调整,已达到自己的部署目的
2、修改完成后在当前目录执行
首次执行登录操作:coder login http://youerserver ,执行完成后会打开你的服务器网站并让其登录,登录完成后打开认证页面,复制认证页面的token 直接粘贴到命令行中(和终端输入密码一样看不到的)按回车完成登录
然后执行 coder templates create 完成模板的创建
最后执行 coder templates push 推送本地模板到服务器
注意:coder命令到官网github地址上去下载,并安装到本地,设置好环境变量;官方为了推广是把coder命令行和服务器集成到一起的,请根据实际情况部署服务器和客户端
workspace 完成创建的模板后可以根据实际情况使用命令行或终端生成 workspace工作空间