手动部署失败

  • Choerodon平台版本:0.21.0

  • 运行环境:自主搭建

  • 问题描述:

    手动部署了一个应用,失败了如图所示:


    查看了事务:

io.choerodon.core.exception.CommonException: java.io.IOException: Cannot run program "/usr/lib/yaml/values_yaml": CreateProcess error=2, 系统找不到指定的文件。
	at io.choerodon.devops.app.service.impl.AppServiceInstanceServiceImpl.getReplaceResult(AppServiceInstanceServiceImpl.java:1029)
	at io.choerodon.devops.app.service.impl.AppServiceInstanceServiceImpl.getC7NHelmRelease(AppServiceInstanceServiceImpl.java:1545)
	at io.choerodon.devops.app.service.impl.AppServiceInstanceServiceImpl.createInstanceBySaga(AppServiceInstanceServiceImpl.java:673)
	at io.choerodon.devops.app.service.impl.AppServiceInstanceServiceImpl$FastClassBySpringCGLIB$ed783bea.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
	at io.choerodon.devops.app.service.impl.AppServiceInstanceServiceImpl$EnhancerBySpringCGLIB$4073c932.createInstanceBySaga(<generated>)
	at io.choerodon.devops.app.eventhandler.DevopsSagaHandler.devopsCreateInstance(DevopsSagaHandler.java:354)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at io.choerodon.asgard.saga.consumer.SagaConsumer.invoke(SagaConsumer.java:84)
	at io.choerodon.asgard.saga.consumer.SagaConsumer.lambda$null$0(SagaConsumer.java:56)
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: io.choerodon.core.exception.CommonException: java.io.IOException: Cannot run program "/usr/lib/yaml/values_yaml": CreateProcess error=2, 系统找不到指定的文件。
	at io.choerodon.devops.infra.util.FileUtil.replaceNew(FileUtil.java:455)
	at io.choerodon.devops.app.service.impl.AppServiceInstanceServiceImpl.getReplaceResult(AppServiceInstanceServiceImpl.java:1026)
	... 17 more
Caused by: java.io.IOException: Cannot run program "/usr/lib/yaml/values_yaml": CreateProcess error=2, 系统找不到指定的文件。
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at java.lang.Runtime.exec(Runtime.java:620)
	at java.lang.Runtime.exec(Runtime.java:450)
	at java.lang.Runtime.exec(Runtime.java:347)
	at io.choerodon.devops.infra.util.FileUtil.replaceNew(FileUtil.java:435)
	... 18 more
Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
	at java.lang.ProcessImpl.start(ProcessImpl.java:137)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	... 22 more


请问我应该怎么处理

我看代码里是这行报错

有人吗,能指导下吗,没有思路,我看执行这步前进行了保存,为什么这里会提示不存在

看了dockerFile发现少了base里的指令 复制过去好了

你这个是自己打的镜像吗?

不是,之前只是jar启动 没打镜像,发现命令使用不了

嗯, 是这样的. 官方镜像里肯定打包有的

可以试着使用docker run启动测试,如果启动没有问题,在使用平台启动;如果失败的话,检查下dockerfile文件中的基础镜像,一般情况下不会报这个路径缺少文件