简介
使用的版本为9.2.0,就编译过程中遇到的坑做简单记录。
编译环境
电脑:macos high sierra 10.13.6
docker版本:20.10.13
docker-compose版本:1.28.5
maven:3.6.1
坑点
问题一 编译命令执行后缺少proto文件;
原因:缺少proto的子模块代码,或者子模块代码拉取不全;
解决方案:再拉取项目代码的时间使用翻墙代理;
问题二 编译命令执行后,receiver-proto模块一直编译不起并报错;
报错现象:大概的意思就是执行 “exec target/bin/flatc”报错,系统执行不了这个命令,这个现象在windwos电脑正常,但在我mac电脑却是失败的。
原因:macos high sierra 10.13.6这个系统版本太低,无法执行这个命令,需要将系统升级到10.14.+的版本;
解决方案:1.升级系统;2.换windwos电脑(我选择的);
问题三 将项目打包成docker镜像;
现象:官方提供的DockerFile文件是需要传参数的,但说明里面并没有提示,导致再构建的时候很懵圈;一直打包不了;
原因:运行DockerFile时需要增加参数,并且参数得指向正确的文件路径;
解决方案:
打镜像命令需要增加亮哥参数 --build-arg DIST=包名 --build-arg SKYWALKING_CLI_VERSION=latest;
其中,DIST的值为apache-skywalking-apm-bin.tar.gz 包的绝对路径(建议放在同目录下,直接写包名);
SKYWALKING_CLI_VERSION的值为cli的版本(现在固定为latest最新版本就行)
**最终打包命令为**:docker build -t skywalking-oap:9.2.0 --build-arg DIST=apache-skywalking-apm-bin.tar.gz --build-arg SKYWALKING_CLI_VERSION=latest .
问题四 打包好的docker镜像无法运行,报版本问题;
Version in "./docker-compose.yaml" is unsupported. You might be seeing this xxxxxx
原因:docker版本和docker-compose.yaml定义的version不匹配,导致报错;
解决方案:升级docker版本;
问题五 打包好的docker镜像一运行就停止了;
错误现象:
原因:9.2.0版本的skywalking对docker的版本、docker-compose的版本是有要求的(具体什么要求没研究),我自己的电脑上的docker版本满足使用,但服务器上面的版本太低,导致一启动就停止;
解决方案:将docker的版本、docker-compose的版本升级到当前最新版本即可(因为9.2.0版本是当时skywalking的最新版本,要求docker-compose使用3.8的version);
跳过测试:./mvnw clean package -Pall -Dcheckstyle.skip=true -Dmaven.test.skip=true