在 Spring 云数据流服务器上部署 dockerized 应用程序
Deploying dockerized apps on Spring Cloud Data Flow server
阅读 documentation,它说:
Depending on the runtime, applications can be packaged in two ways:
Spring Boot uber-jar that is hosted in a maven repository, file, or HTTP(S).
Docker image.
所以我制作了一个 docker 图像,运行 是一个 hello-world python 程序,并在本地 SCDF 服务器上注册了它.
app register --name hello-world --type task --uri docker:hello-world:latest
但是当我尝试将其作为任务启动时,它失败了
task create --name helloTask --definition "hello-world"
task launch helloTask
Command failed org.springframework.cloud.dataflow.rest.client.DataFlowClientException: Exception trying to launch....resource = Docker Resource [docker:hello-world:latest]]
我需要另一个服务器环境吗?哪一个?问题是,是否可以将 SCDF 用于 运行 任何 docker 化的应用程序,或者它仅支持 Spring 引导 (java) ?
PS: 我的 Dockerfile
FROM python:3.4-alpine
ADD . /code
WORKDIR /code
CMD python app.py
SCDF 的本地、cf 和 k8s 服务器实现支持 Docker 分辨率。但是,每个服务器变体都有在 运行 时间向应用程序提供 env-vars 的特定方式。例如,请参阅 Kubernetes-server 文档。
至于应用程序类型,SCDF 今天编排了 Spring 启动应用程序。 SCDF 无法本地解释其他类型的工作负载。
就是说,如果您打算使用 python 进行流处理,我们会通过 python-processor apps and at runtime, it would invoke the script from within the container. See a sample here.[=11 为 运行 Python 脚本提供一种机制=]
具体到 Tasks,我们没有类似的应用程序,但它可能与 python-processor(s) 所做的相同,但使用 Spring Cloud Task 编程模型而不是 Spring 云流。也许您可以尝试一下并将其贡献回项目中。
调用 Python Docker 图像的一种方法是创建一个 Java 处理器并使用 DinD-java 作为基础图像对其进行 docker 化。然后在这个处理器中使用 Docker API 来调用 Python Docker 图像。这在这里解释 - https://dzone.com/articles/how-to-run-any-dockerized-application-on-spring-cl
阅读 documentation,它说:
Depending on the runtime, applications can be packaged in two ways:
Spring Boot uber-jar that is hosted in a maven repository, file, or HTTP(S). Docker image.
所以我制作了一个 docker 图像,运行 是一个 hello-world python 程序,并在本地 SCDF 服务器上注册了它.
app register --name hello-world --type task --uri docker:hello-world:latest
但是当我尝试将其作为任务启动时,它失败了
task create --name helloTask --definition "hello-world"
task launch helloTask
Command failed org.springframework.cloud.dataflow.rest.client.DataFlowClientException: Exception trying to launch....resource = Docker Resource [docker:hello-world:latest]]
我需要另一个服务器环境吗?哪一个?问题是,是否可以将 SCDF 用于 运行 任何 docker 化的应用程序,或者它仅支持 Spring 引导 (java) ?
PS: 我的 Dockerfile
FROM python:3.4-alpine
ADD . /code
WORKDIR /code
CMD python app.py
SCDF 的本地、cf 和 k8s 服务器实现支持 Docker 分辨率。但是,每个服务器变体都有在 运行 时间向应用程序提供 env-vars 的特定方式。例如,请参阅 Kubernetes-server 文档。
至于应用程序类型,SCDF 今天编排了 Spring 启动应用程序。 SCDF 无法本地解释其他类型的工作负载。
就是说,如果您打算使用 python 进行流处理,我们会通过 python-processor apps and at runtime, it would invoke the script from within the container. See a sample here.[=11 为 运行 Python 脚本提供一种机制=]
具体到 Tasks,我们没有类似的应用程序,但它可能与 python-processor(s) 所做的相同,但使用 Spring Cloud Task 编程模型而不是 Spring 云流。也许您可以尝试一下并将其贡献回项目中。
调用 Python Docker 图像的一种方法是创建一个 Java 处理器并使用 DinD-java 作为基础图像对其进行 docker 化。然后在这个处理器中使用 Docker API 来调用 Python Docker 图像。这在这里解释 - https://dzone.com/articles/how-to-run-any-dockerized-application-on-spring-cl