公司的新产品需要实现配置平台功能,经过调研之后决定基于开源项目蓝鲸智云配置平台进行二次开发。
团队内有多名研发人员参与此项目的开发,因此需要搭建基础的开发环境,最好能方便共享给大家使用。
开源项目为开发者提供了可以直接运行的容器镜像,可基于此镜像搭建开发环境后共享给其他研发人员。
开发环境基于Windows系统搭建,请自行安装 Docker Desktop 软件、Visual Studio Code 软件。
注意:此文档为环境搭建完成后编写,可能存在谬误或者忽略了部分细节,仅供参考。
本章节简要介绍开发环境镜像的制作过程。
参考开源工程 极速体验容器化部署蓝鲸CMDB 文档搭建了基础环境:
docker pull ccr.ccs.tencentyun.com/bk.io/cmdb-standalone:latest
docker run --name cmdb -d -p 8081:8090 ccr.ccs.tencentyun.com/bk.io/cmdb-standalone:latest
使用浏览器即可访问 蓝鲸配置平台 。
为了运行我们自己编译的软件版本,需要先停止现有服务,在容器终端中执行:
bash
cd /data
./down.sh
后面需要安装的工具需要依赖很多基础包,因此需要先安装这些基础包,在容器终端中执行:
bash
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc gcc-c++ make perl-ExtUtils-MakeMaker
下载 Git 源码包到本地:Git源码下载地址 。
将本地Git源码拷贝到容器中,在 Windows 终端中执行:
docker cp E:\tools\git-2.39.0.tar.gz cmdb:/root/
解压后安装即可,在容器终端中执行:
bash
cd /root
tar -xzf git-2.39.0.tar.gz
cd git-2.39.0
./configure
make && make install
rm -rf ./git*
下载 Golang 包:Golang下载地址 。
将Golang包拷贝到容器中,在 Windows 终端中执行:
docker cp E:\tools\go1.21.1.linux-amd64.tar.gz cmdb:/root/
解压,在容器终端中执行:
bash
tar -C /usr/local -xzf /root/go1.21.1.linux-amd64.tar.gz
在 ~/.bashrc 文件末尾添加 export PATH=$PATH:/usr/local/go/bin
命令指定 golang 路径,后在容器终端中执行:
bash
source ~/.bashrc
go env -w GO111MODULE="on"
go env -w GOPROXY=https://goproxy.cn,direct
git config --global --unset credential.helper
rm -f go1.21.1.linux-amd64.tar.gz
使用 Visual Studio Code 连接容器后安装 Golang 需要使用的工具(安装失败通常是由于无法访问国外网站导致的,连上 VPN 后重试即可)。
下载 nvm :nvm下载地址 。
将nvm包拷贝到容器中,在 Windows 终端中执行:
docker cp E:\tools\nvm-0.39.5.tar.gz cmdb:/root/
解压后安装,在容器终端中执行:
bash
cd /root
tar -zxf nvm-0.39.5.tar.gz
cd nvm-0.39.5
./install.sh
source ~/.bashrc
rm -rf nvm-0.39.5*
nvm install 14.21.3
node -v
npm -v
在 Windows 上打开 Visual Studio Code,安装 Docker 插件,右键选择之前启动好的容器,选择“Attach Visual Studio Code” 安装远程调试依赖包。
删除原有的部署目录,在容器终端中执行:
rm -rf /data/cmdb
找到占用空间较大的 cache 和 tmp 目录并删除(可使用du -sh
命令查看文件夹大小)。
导出镜像文件系统、删除现有容器,在 Windows 终端中执行:
docker export -o cmdb.tar cmdb
docker rm cmdb
镜像包已制作完成,可以分享给其他研发人员,下一章将介绍如何基于此镜像包搭建开发环境。
在上一章节中在镜像安装了 Git、Golang、nvm、Node.js 等开发必备工具,可直接使用。
导入已制作好的镜像包:
docker import cmdb.tar cmdb
镜像导入完成之后,即可运行容器,参考命令:
docker run --name cmdb -itd -p 8081:8090 cmdb /bin/bash
注:容器名可自定义,端口映射是为了在 Windows 宿主机上直接访问配置平台的前端页面。
请自行生成 SSH key
并添加到 github
账户中。
容器运行之后,在容器终端执行下列命令:
bash
cd /root/
git clone [email protected]:TencentBlueKing/bk-cmdb.git
mv bk-cmdb cmdb
cd cmdb/src/
make
make package
tar -C /data -xzf /root/cmdb/src/bin/pub/cmdb.tar.gz
cd /data
./run.sh
上述命令的作用如下:
直接使用 Windows 主机浏览器访问 蓝鲸配置平台 即可。
注:此处使用的端口号需要和启动容器时映射的端口号相同。
在 Visual Studio Code 中安装 Docker 插件。
在左侧导航栏中选择进入 Docker 插件页面,右键选择之前启动好的容器,选择“Attach Visual Studio Code”。
在新打开的窗口中,选择菜单栏“File -> Open Folder”,输入“/root/cmdb”打开容器中的源码目录。
在 Visual Studio Code 左侧导航栏中选择进入 Run and Debug 页面,点击创建 launch.json 文件,参考配置:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Process",
"type": "go",
"request": "attach",
"mode": "local",
"processId": 15722
}
]
}
即可 Attach 到现有进程上进行调试(需要将"processId"的值修改为对应的PID),在代码中打上断点,访问前端页面触发断点后即可进行调试。