在关键云创建中,有一种方法可以为不同的环境拥有不同的环境变量的Manifest.yml。例如,我们有一个开发/测试/生产环境。在系统中,我希望有一个环境变量"service=development.pcf.domain.com“,在测试中它应该是"service=test.pcf.domain.com”。
我希望维护一个文件,并将所有环境变量保存在一个清单中,而不需要记住每个环境要传递哪个清单文件。
换句话说,我不想有3个文件:
manifest_development.yml
-env: url=development.pcf.domain.com
manifest_test.yml
-env: url=test.pcf.domain.com
manifest_production.yml
-env: url=production.pcf.domain.com
我希望有一个文件来定义所有环境变量,并根据应用程序部署的环境选择正确的环境变量:
manifest.yml:
env-development:
-url=development.pcf.domain.com
env-test:
-url=test.pcf.domain.com
env-production:
-url=production.pcf.domain.com
发布于 2017-05-04 15:48:38
我发现一个聪明的家伙已经有了spring_active_profiles设置wirh特定的设置,所以我只需要创建应用程序-system.properties并使用spring配置文件。
发布于 2017-03-16 21:49:14
查看https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#multi-manifests中的“带有继承的多个清单”部分。
---
inherit: base-manifest.yml
...
如果可能的话,最好是通过CF服务/cups向应用程序提供所有相关服务,并且应用程序通过解析VCAP_SERVICES环境变量获得环境依赖的配置,避免每个环境应用程序配置文件。
发布于 2017-03-17 15:04:12
我过去做这件事的方法是利用管道的灵活性。
我用过詹金斯和康帕尔。
从技术上讲,您应该只部署到开发环境中。所有后续部署都应通过管道完成。
我要做的是,有一个包含占位符的泛型清单文件(泛型-public.yml)。我会创建文件的副本(清单-local.yml)。它只适用于开发环境。
在我的管道中,使用一些shell脚本来生成具有正确环境细节(集成、uat、prod等)的manifest.yml。
我只需要维护一个文件--泛型--明显。通常,每次对其进行更改时,我都会重新创建本地清单文件。
最终,您可以为您的开发环境提供管道,在这种情况下,您将不再需要本地清单文件。
我会更进一步说,每次我必须开发一个新的微服务时,我首先开发一个shell类,它的测试类,然后是为那个微服务器开发一条管道。这样,我就不用再担心把我的微型服务推到云铸造厂了。
你第一次做这件事,将是一些工作。但一旦你养成了这个习惯,它就会变得天衣无缝。
试试看。
https://stackoverflow.com/questions/42849476
复制相似问题