常见问题
编译任务失败
问题1:没有cd到代码目录
在进行编译任务的时候,如果没有先cd到代码目录就进行编译,会造成无法找到pom文件,或者源代码,造成编译失败,进而导致编译任务失败。
问题2: 没有所需要的编译环境,导致编译失败
以javascript的编译为例,有些需要node8,有的需要node10,有的需要node12.如果不使用正确的编译版本,可能会造成编译的失败。如果没有指定版本的编译环境,需要联系管理员在后台进行编译环境的添加。
问题3:对maven项目进行编译,避免使用mvn -q
mvn -q用来设置mvn的日志级别,在指令在CI/CD平台容易出错。建议使用mvn -q --version或者避免使用mvn -q设置日志级别。
Docker构建任务失败
问题1:构建上下文路径没有填写
当构建上下文路径没有填写,会默认此流水线的Jenkins工作目录为默认的构建上下午路径(Jenkins工作目录解释参考3.2.1)。而我们需要COPY的编译产物,如果开发人员没有特别操作,一般会存放在代码目录中。所以流水线的Docker构建任务往往会失败。一般设置代码目录为构建上下文路径。
问题2:基础镜像不存在
当Docker构建中Dockerfile 所使用的基础镜像不存在时,会造成Docker构建失败。这时需要指定正确已经存在的基本镜像位置到流水线配置中。
部署任务失败
问题1:等待时间设置较短,其实服务已经正常部署
如果容器云性能较弱时,会导致服务部署时间过长。这样我们最初设置的等待时候,可能会超时,造成部署任务失败。如果通过查看服务,镜像已经正常部署。可以通过增加等待时间来解决此问题。
问题2: 服务未提前创建,导致部署失败
当服务未提前创建,导致服务部署失败的情况。需要先创建出需要的服务,再进行流水线的执行。
模板创建流水线
问题1:关联代码仓未修改
使用模板创建出来的流水线会沿用模板中的关联代码仓。我们创建完流水线后,需要修改成我们的流水线所依赖的代码仓库。