amazon-web-services - Spring云数据流: Cannot run program "docker"

标签 amazon-web-services docker kubernetes spring-cloud-dataflow

我想在 AWS 上的 Kubernetes 集群上使用 Kinesis 流部署 Spring Boot 应用程序。

我在 AWS EC2 (Amazon Linux) 实例中使用 kops 创建集群并使用 terraform 部署它。

我使用 Helm 图表安装了适用于 Kubernetes 的 Spring Cloud Data Flow。我的所有 Pod 均已启动并运行,我可以访问 Spring Cloud Data Flow 界面以注册我的 Docker 化应用程序。我正在使用 ECR 存储库上传我的 Docker 镜像。

当我想部署流(由时间源和日志接收器组成)时,会弹出一条很大的红色错误消息。我检查了 Skipper pod 的日志,并收到以下以 开头的错误消息:

org.springframework.cloud.skipper.SkipperException: Could not install AppDeployRequest

最后加上:

Caused by: java.io.IOException: Cannot run program "docker" (in directory "/tmp/spring-cloud-deployer-5769885450333766520/time-log-kinesis-stream-1539963209716/time-log-kinesis-stream.log-sink-kinesis-app-v1"): error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[na:1.8.0_111-internal]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer$AppInstance.start(LocalAppDeployer.java:386) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer$AppInstance.start(LocalAppDeployer.java:414) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer$AppInstance.access$200(LocalAppDeployer.java:296) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer.deploy(LocalAppDeployer.java:199) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        ... 54 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method) ~[na:1.8.0_111-internal]
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) ~[na:1.8.0_111-internal]
        at java.lang.ProcessImpl.start(ProcessImpl.java:134) ~[na:1.8.0_111-internal]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ~[na:1.8.0_111-internal]
        ... 58 common frames omitted

当我尝试在 Windows 10 上的本地 k8s 集群上部署时,我已经遇到了这个错误,我认为它链接到了 Win10 平台。

我正在使用1.6.2.RELEASE版本的spring-cloud-dataflow-server-kubernetes

我真的不知道为什么会出现这个错误。谢谢!

最佳答案

当 SCDF local 部署程序的 ProcessBuilder 尝试从此路径运行 docker exec 时,它看起来好像没有找到 docker 命令:

/tmp/spring-cloud-deployer-5769885450333766520/time-log-kinesis-stream-1539963209716/time-log-kinesis-stream.log-sink-kinesis-app-v1

SCDF 在运行 docker 命令之前将上述路径设置为其工作目录,因此 docker 预计将从该位置运行。

关于amazon-web-services - Spring云数据流: Cannot run program "docker",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52896203/

相关文章:

python - 如何处理 sqlalchemy+psycopg2 中不断变化的密码?

docker - 尝试从 Minikube 上的 docker hub 拉取/运行 docker 镜像失败

node.js - 在 Mono 存储库中使用 Lerna Docker 化多个 Node 应用程序

docker - Elasticsearch Docker : flood stage disk watermark [95%] exceeded

kubernetes - CephFS 卷挂载失败

kubernetes - 公司代理背后的Kubectl

amazon-web-services - AWS - 为什么 AWS EC2 t2.micro 实例显示 8GB RAM?

amazon-web-services - AWS 事件桥 : Get branch name and last commit author for AWS CodeBuild event rule

amazon-web-services - EC2 UserData 脚本在启动时未运行

kubernetes - 当一个 worker pods 成功时,完成并行的Kubernetes作业