- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近开始练习Dockers。基本上,我在 Docker 容器上运行 C 应用程序。现在,我想尝试 cloud foundry,因此,试图了解两者之间的区别。
我会将应用程序描述为新手,因为我是新手。我作为服务启动的应用程序(来自/etc/init.d),它在启动期间读取一个配置文件,该文件指定要加载的所有模块和其他服务的 IP 以及它自己的(0.0.0.1)。 0.0 不起作用,所以我必须提供实际 IP)。
我必须在容器启动时手动更新配置文件中的 IP 和一些详细信息。因此,我编写了一个启动脚本,它在容器启动时执行所有更改,然后是服务启动命令。
现在,转到 Cloud Foundry,我找不到的第一件事是“如何部署 C 应用程序”,然后我找到了 C 构建包和二进制构建包选项。我仍然必须尝试这些,但我无法理解如何为 Cloud Foundry 容器提供启动脚本,或者简单地说如何实现我使用 Dockers 所做的事情。
我的最后一个选择是在 Cloud foundry 中使用 docker 容器,但我想了解我是否可以实现上述目标。
我希望我已经足够清楚地解释我的疑问。
感谢帮助。
最佳答案
一个老问题,但自发布以来发生了很多变化:
Recently I started to practice Dockers. Basically, I am running a C application on Docker container. Now, I want to try cloud foundry, therefore, trying to understand the difference between the two.
...
The last option I have is to use docker containers in Cloud foundry, but I want to understand if I can achieve what I described above.
在 CF 上使用 Docker 容器没有错。如果您已经将所有设置都设置为在 Docker 容器内运行,那么能够在 CF 上运行它为您提供了另一个可以轻松部署工作负载的地方。
虽然这些都是次要的,但对您的 Docker 容器有一些要求,因此值得检查这些以确保它可以在 CF 上运行。
https://docs.cloudfoundry.org/devguide/deploy-apps/push-docker.html#requirements
Anyways, I am not working on this now as CF is not suitable for the project. It's an SIP application and CF only accepts HTTP/S requests.
好的,房间里的大象。这不再是真的。 CF 支持 TCP 路由。这些允许您直接接收 TCP 流量到您的应用程序。这意味着,不再只有 HTTP/S 应用适合在 CF 上运行。
使用 TCP 路由设置 CF 环境的说明:https://docs.cloudfoundry.org/adminguide/enabling-tcp-routing.html
作为开发人员使用 TCP 路由的说明:https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#create-route-with-port
Now, moving on to Cloud Foundry, the first thing I was not able to find is 'How to deploy C application' then I found a C build pack and a binary build pack option.
选择构建包是重要的一步。 buildpack 获取您的应用程序并准备好在 CF 上运行。 C 构建包可能听起来不错,因为它会获取您的源代码、构建并运行它,但它会变得棘手,因为您的 C 应用程序可能依赖于库。可能会或可能不会安装的库。
如果您要走这条路,您可能需要使用 CF 的多构建包支持。这使您可以运行多个构建包。如果将其与 Apt buildpack 配对,您可以安装所需的包,以便在编译时为您的应用程序提供任何所需的库。
https://docs.cloudfoundry.org/buildpacks/use-multiple-buildpacks.html
https://github.com/cloudfoundry/apt-buildpack
使用二进制构建包是另一种选择。在这种情况下,您将在本地构建您的应用程序。也许在 docker 容器或 Ubuntu VM 上(它需要匹配您的 CF 提供商使用的堆栈,即 cf stacks
,目前是 Ubuntu Trusty 或 Ubuntu Bionic)。一旦您拥有二进制或二进制 + 库集,您可以简单地 cf push
编译的工件。二进制 buildpack 将“运行”(它实际上什么都不做),然后您的应用程序将使用您指定的命令启动。
我只有 0.02 美元,但二进制 buildpack 可能是两个选项中更简单的一个。
what I am not able to understand how I can provide a startup script to a cloud foundry container or in brief how to achieve what I was doing with Dockers.
有几种方法可以做到这一点。第一种是指定自定义启动命令。您可以使用 cf push -c 'command'
执行此操作。这通常用于启动您的应用程序,如 './my-app'
,但您也可以使用它来做其他事情。
例如:cf push -c './prep-my-app.sh && ./my-app'
或者甚至只是调用您的启动脚本:
例如:cf push -c './start-my-app.sh'
。
CF 还支持 .profile
脚本。这可以与您的应用程序一起推送(在您推送的文件的根目录下),它将在您的应用程序启动之前由平台执行。
https://docs.cloudfoundry.org/devguide/deploy-apps/deploy-app.html#profile
通常,您希望使用 .profile
脚本,因为您想让 buildpack 决定如何启动您的应用程序(设置 -c
将覆盖buildpack),但在您使用 C 或二进制 buildpack 的情况下,buildpack 不太可能做到这一点,因此无论如何您最终都必须设置自定义启动命令。
对于这种特定情况,我建议使用 cf push -c
,因为它稍微容易一些,但对于所有其他情况和使用其他 buildpack 部署的应用程序,我建议使用 。配置文件
脚本。
希望对您有所帮助!
关于docker - 从 Docker 容器迁移到 Cloud Foundry 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33406410/
这个问题在这里已经有了答案: How can I have nice file names & efficient storage usage in my Foundry Magritte data
如何将本地的 h5 模型从 Foundry 导入代码工作簿?我想使用拥抱面库,如下所示,在其文档中,from_pretrained 方法需要预训练模型所在位置的 URL 路径。 理想情况下,我希望将模
假设我使用 cloudfoundry.org 上提供的开源 Cloud Foundry 实现设置了我自己的云。 .我部署的每个应用程序都会作为单独的用户运行吗?或者这里是否使用了 VMWare 的任何
我在云中发布应用程序时的默认时区是什么?如果有这样的选项,我该如何更改时区? 非常感谢对此功能的任何引用。 最佳答案 run.pivotal.io 上的时钟设置为 UTC。如果您要部署到那里,则必须使
我的应用程序需要获取其运行的实例数(在运行时,我的应用程序在我的程序逻辑中使用此信息)。(VCAP_APPLICATION 环境变量无法提供此信息。)直接调用 API 并使用“实例”属性是一种选择,但
我有 3 个应用程序在私有(private) vcap 实例中运行。一个充当面向客户的 Web 应用程序,而另一个是后端系统,一个通过 Web 应用程序使用的 REST 公开数据服务,另一个应用程序通
部署到 Cloud Foundry 的应用程序的多个实例之间是否可以进行通信?我检查了 Cloud Foundry API,但找不到任何提及此主题的内容。我已经尝试过 Hazelcast,但不幸的是,
我正在构建一个 Workshop 应用程序,大量操作人员(> 200)将使用该应用程序进行数据输入。我想实现以下设置: 工作人员将输入现有本体对象的数据。为此,我在对象 View 中嵌入了一个 Fou
有谁知道我如何告诉我的 Cloud Foundry 实例来监控我的健康端点,以便当我的健康端点说应用健康不是状态:UP 时,应用会重新启动? 最佳答案 cf CLI 6.24.0(2017 年 2 月
部署到 Cloud Foundry 的应用程序的多个实例之间是否可以进行通信?我检查了 Cloud Foundry API,但找不到任何提及此主题的内容。我已经尝试过 Hazelcast,但不幸的是,
我正在构建一个 Workshop 应用程序,大量操作人员(> 200)将使用该应用程序进行数据输入。我想实现以下设置: 工作人员将输入现有本体对象的数据。为此,我在对象 View 中嵌入了一个 Fou
当我从 Cloud Foundry blog 中阅读以下内容时,我试图弄清楚如何使用 Micro CloudFoundry 进行开发。 : “无需安装 Web 服务器(Tomcat 等)、运行时(Ja
我有一个文件夹,我会每月上传一个文件。该文件每个月的格式都相同。 第一个问题 想法是将此文件夹中的所有文件连接成一个文件。目前我正在对文件名进行硬编码(文件名[0]、文件名[1]、文件名[2]..),
我想我了解重新分区、配置单元分区和分桶如何影响输出文件的数量,但我不太清楚各种功能之间的相互作用。有人可以帮助填写以下每种情况下我留空的输出文件的数量吗?目的是了解在我混合使用高基数列和低基数列的情况
我有时听到人们提到此 AQE 功能,我想知道如何验证我的工作是否正在使用它。我在代码存储库和代码工作簿中运行转换。 最佳答案 这会在作业的环境详细信息选项卡中注明。 导航到构建页面 在 Build 页
我的 Foundry 实例中有一个使用增量计算的管道设置,但由于某种原因没有达到我的预期。即,我想读取我的转换的先前输出并获取日期的最大值,然后仅在此最大日期之后立即读取数据的输入。 出于某种原因,它
我可以用apt-get或 Cloud Foundry buildpack 中的其他包管理器或 .profile应用程序附带的脚本;如果可以,我该怎么做?我希望以与 dockerfile 中相同的方式执
我们正在寻找 Foundry 平台中是否有一个工具可以让我们拥有一个字段描述列表,并且当数据集构建时,它可以自动填充这些描述。这是否存在?如果存在,该工具叫什么? 最佳答案 如果您将您的代码存储库升级
是否可以将应用程序的文件下载到我的本地 PC,即执行与“推送”相反的操作? 最佳答案 只要您的应用程序成功完成暂存(即构建包运行并完成),您就应该能够下载由 CF 构建的 Droplet。这将包含您的
我有一个由对象支持的 Foundry Form,能够对其进行更改。我需要授予我的同事什么权限才能编辑表单?表单上的编辑器是否足够,或者他们是否还需要成为对象的编辑器? 最佳答案 要创建表单,您需要在表
我是一名优秀的程序员,十分优秀!