我们需要将私有存储库docker镜像部署为Cloudfoundry任务,然后从Cloudfoundry javabuildpack Spring boot应用程序调用该任务。
我遵循这种方法, - 我尝试为 docker 映像创建快捷批处理 ID - 然后使用 cf v3 任务 API 调用快捷批处理。
代码步骤:
export CF_DOCKER_PASSWORD=<hsdp docker service passwork>
export CF_DOCKER_USERNAME=<hsdp docker service key>
cf v3-create-package myspringboot-app --docker-image <private-repo>/eng-bdp_bdp-dev/etlwithpython:1
cf v3-stage myspringboot-app --package-guid a3bd45cd-eb5f-4072-bee8-af0bd389f13a
v3 阶段命令在错误下方抛出。
"Stager error: Failed to get blobstore download url for package a3bd45cd-eb5f-4072-bee8-af0bd389f13a"
请让我知道这种方法是正确的以及如何解决此错误。
我的建议是这样做:
- 推送您的应用程序。 即使它不会成功启动,因为它只是设计为一个任务,只需推送它,一旦暂存完成,您就可以运行
cf stop
。 - 然后就
cf run-task APP-NAME "TASK" --name TASK-NAME
.
我认为这将是最简单,最直接的选择。 如果由于某种原因这不起作用,您可以尝试以下方法。 v3 api 不稳定,因此将来可能会更改/中断/停止工作。
- 运行
cf push
,但使用--no-start
选项。 这将上传您的包并为您创建一个应用程序。 - 运行
cf v3-packages <app>
并获取包 uuid。 - 运行
cf v3-stage <app> --package-guid <uuid>
. 这将暂存应用并创建快捷批处理。 - 运行刚刚创建的快捷批处理的
cf v3-droplets <app>
和 uuid。 - 运行
cf v3-set-droplet <app> -d <uuid>
,将应用与您创建的快捷批处理相关联。 - 运行
cf run-task <app> <cmd>
以执行任务。
希望对您有所帮助!