使用 PHP buildpack 构建的 Cloud Foundry 应用程序 - 自定义扩展在部署后消失
Cloud Foundry app built with PHP buildpack - custom extention disappears after deploy
我开发了一个 CIO Blumix Cloud Foundry PHP 应用程序,它需要一些额外的组件。
我使用 https://github.com/cloudfoundry/php-buildpack 进行构建。我在它的文档中读到我可以添加自己的扩展。我这样做并添加了 tar.tgz 并在 extention.py 中添加了说明如何安装它。
目标位置是:/home/vcap/。
我看到安装 运行 没问题,我在部署阶段看到了文件夹(在 DevOps Pipelines 部署阶段日志和历史记录中)。
但是当部署通过并且我使用已部署的 php 页面读取文件夹时,我发现它不存在。我在部署日志中阅读了 "container destroyed successfully" 消息。也许整个安装环境都被破坏了?部署文件结构中哪里是我可以安装组件的安全位置,以便它们在部署通过后保留?
我正在使用 def compile(install):
来放置我的 unix 命令。示例:os.system('ls')
列出安装文件夹内容。它们工作正常。
提前致谢!
您的应用使用了两种完全不同的环境:暂存和 运行时间。暂存是 buildpack 运行s & 运行time 是暂存产品(即你的应用程序)是 运行.
的地方
不幸的是,暂存路径和 运行时间路径不同。在 runtime 处,您的应用位于 /app
或 /home/vcap/app
下(前者是后者的符号链接)。分期是不同的。有一个 /home/vcap
目录,但它没有用于任何用途。
相反,buildpack 脚本是通过 cli 参数提供的路径。这都记录在案 here.
作为 PHP buildpack extension,您可以通过查看 buildpack 维护的上下文来访问 cli args 和许多其他内容。这会直接传递到 buildpack 扩展方法中,例如 service_environment
& service_commands
。 compile
buildpack 扩展方法略有不同,因为传入的参数不是内容,但该参数确实有对上下文的引用(它是 install.builder._ctx
)。
话虽如此,我现在不建议使用 PHP buildpack 扩展。 buildpack 正在被重写并且该功能正在被删除。它不会直接替换,但最接近的是 Composer's ability to execute scripts。我的建议是看看您是否可以使用 Composer 功能。它将更便携,因为它不依赖于 buildpack 的特定行为。
我开发了一个 CIO Blumix Cloud Foundry PHP 应用程序,它需要一些额外的组件。
我使用 https://github.com/cloudfoundry/php-buildpack 进行构建。我在它的文档中读到我可以添加自己的扩展。我这样做并添加了 tar.tgz 并在 extention.py 中添加了说明如何安装它。
目标位置是:/home/vcap/。 我看到安装 运行 没问题,我在部署阶段看到了文件夹(在 DevOps Pipelines 部署阶段日志和历史记录中)。
但是当部署通过并且我使用已部署的 php 页面读取文件夹时,我发现它不存在。我在部署日志中阅读了 "container destroyed successfully" 消息。也许整个安装环境都被破坏了?部署文件结构中哪里是我可以安装组件的安全位置,以便它们在部署通过后保留?
我正在使用 def compile(install):
来放置我的 unix 命令。示例:os.system('ls')
列出安装文件夹内容。它们工作正常。
提前致谢!
您的应用使用了两种完全不同的环境:暂存和 运行时间。暂存是 buildpack 运行s & 运行time 是暂存产品(即你的应用程序)是 运行.
的地方不幸的是,暂存路径和 运行时间路径不同。在 runtime 处,您的应用位于 /app
或 /home/vcap/app
下(前者是后者的符号链接)。分期是不同的。有一个 /home/vcap
目录,但它没有用于任何用途。
相反,buildpack 脚本是通过 cli 参数提供的路径。这都记录在案 here.
作为 PHP buildpack extension,您可以通过查看 buildpack 维护的上下文来访问 cli args 和许多其他内容。这会直接传递到 buildpack 扩展方法中,例如 service_environment
& service_commands
。 compile
buildpack 扩展方法略有不同,因为传入的参数不是内容,但该参数确实有对上下文的引用(它是 install.builder._ctx
)。
话虽如此,我现在不建议使用 PHP buildpack 扩展。 buildpack 正在被重写并且该功能正在被删除。它不会直接替换,但最接近的是 Composer's ability to execute scripts。我的建议是看看您是否可以使用 Composer 功能。它将更便携,因为它不依赖于 buildpack 的特定行为。