使用华为云ServiceStage的持续交付构建失败原因排查
软件工程构建失败的原因很多,可以按照以下场景排查定位。
拉取不到代码
拉取不到代码,如下图所示
一般原因可能有三种。
-
如果是在自己的节点上构建,可能是该节点没有绑定弹性ip,如上图所示"192.168.x.x"的节点没有绑定弹性ip,解决方法:去该节点绑定弹性ip。
-
授权信息过期,代码源的私人令牌权限范围不够,或者授权信息已被移除等,例如:devcloud的代码源,拉取不到代码,可能是创建授权的时候,用户名对应的密码输错了,导致拉取不到代码。解决方法:重新授权即可。
-
自己搭建的代码源仓库,和构建的节点网络不通,例如:在集群A的某一个节点上搭建了一个私有的bitbucket,构建使用集群B,但是集群B和集群A不是同一个vpc,内网不通,导致构建拉取不到代码。解决方法:打通网络。
依赖自己的私有maven仓库
有以下两种解决方案。
-
在自己的项目的根目录下增加settings.xml文件,在settings.xml指定自己的私有maven仓库地址(如果自己的私有maven仓库时需要认证的,则需要在settings.xml配置上自己的认证信息,用户名密码等)。
-
在自己项目的pom.xml文件中,指定自己的私有maven仓库。
settings.xml和pom.xml所在路径示例如下。
自己的maven仓库搭建在devcloud上
项目代码依赖CSE的sdk,且依赖自己的maven仓库,自己的maven仓库搭建在devcloud上。
解决方法:在自己项目根目录下增加一个settings.xml文件,如何编写这个settings.xml,跳转到devcloud的私有依赖库,点击右上角的“更多操作”-->“生成配置”-->“下载配置文件”。
修改刚刚下载settings.xml文件
1、在<mirrorOf>中增加一个!HuaweiCloudSDK
2、<profiles>的<repositories>下面增加一个maven仓库
<repository>
<id>HuaweiCloudSDK</id>
<url>https://repo.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
如下图所示。
将修改好的settings.xml放在自己项目的根目录后,进行构建即可。
源码构建Dockerfile设置错误
如何写Dockerfile,可以参考官网,也可以参照云上工程的模板生成的demo。
软件包构建Dockerfile设置错误
选择软件包后,后台会自动上传到做镜像的当前工作目录,Dockerfile的示例如下图所示。