问题标签 [12factor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
configuration - 使用环境变量配置应用程序
12-Factor Apps建议您使用环境变量配置您的应用程序。到目前为止,一切都很好。如果您需要设置连接字符串,我可以很容易地想象这是一个很好的方法,例如
但是,如果您有更复杂的配置和大量的值怎么办?我肯定不想拥有 50 多个环境变量,对吗?
我怎样才能解决这个问题,并且仍然符合 12-Factor Apps 的想法?
angularjs - 如何使 angularjs 应用程序在配置方面符合 12 因素
我正在尝试使 angularjs 应用程序 12 因素符合配置(http://12factor.net/config)。
它应该取决于环境,我不应该在代码中看到单词development
, test
,production
等。
例如,变量可以存储在 bashenv
中。我可以将它们传递给网络服务器。
我已经想到了一个 .erb 模板文件erb config.js.erb > config.js
,但是如果我在应用程序运行时更改了一个变量,我就必须重做这个。
我已经找到这篇文章http://mindthecode.com/how-to-use-environment-variables-in-your-angular-application/
但这是一个很大的谎言,而且 Grunt.js 这样做,真的......无论如何。
我知道 12factor 哲学不是为前端应用程序而制定的,但我的 Angular 应用程序可以部署在许多环境中的许多不同服务器中,并且尝试正确地做事不会伤害任何人:)。
谢谢 !
编辑:
我想使用的配置参数是这样的:
其他编辑:
这家伙有点回答:http : //bahmutov.calepin.co/inject-valid-constants-into-angular.html 我觉得有点丑陋并且完全与angularjs绑定;但它有效!
java - How to read "OS variables" from Java (not System.properties)
I just read the excellent 12 Factor App document and it really registered with me. In Chapter 3 Config, the author stresses that:
The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard.
I'm wondering what this implies for Java projects.
Typically, when it comes to my Java apps, I think of "env vars" as things that I can read from System.getProperty("blah")
. Is this what the author is talking about? I don't think this is, because the author explicitly states "and unlike...or other config mechanisms such as Java System Properties...".
If not, what would be an example of an OS-agnostic "env var" that would satisfy this document's definition of "env var"? How would I read it from inside Java code?
Either way, some process has to first set each env var on the OS, so that the var is set & available by the time the app runs. What processes/methods could do this type of pre-run setup?
environment-variables - 使用 Docker 的 12 要素配置方法
是否有任何本机或普遍接受的方法来使用环境变量来控制 Docker 行为,即以 12 因素的方式?
我见过的唯一与语言无关的方法是使用 -e 变量污染 docker run 命令。我见过的最可维护的解决方案是使用 cat 和 sed 的组合使用 .env 文件生成 CLI 参数:https ://twitter.com/DataKyle/status/422843345120296960
我们目前使用 Vagrant for dev,一个用于测试和部署的 CI/CD 托管提供商,以及 AWS Elastic Beanstalk 作为暂存和生产 PAAS。我们的应用程序有 100 多个可配置参数,其中大部分设置为默认值,但每个环境仍需要自定义其中的 10-20 个左右。用大量的命令行变量来运行 docker 似乎太 hacky 了。
此外,它不允许您从 docker 主机获取变量(例如 CI 提供者的预安装 Redis 或 Postgres 凭据),而无需进一步破解。
有没有我还没有找到的解决方案?或者这是 Docker 的缺失部分?或者这是否在某种程度上违背了 Docker 哲学?
java - 12 因素应用程序配置和 Java
我正在阅读 12 因素应用程序宣言http://12factor.net/。宣言建议将应用程序的配置数据存储在环境变量中。这是否意味着数据库用户名/密码、资源 URL 等属性应该存储为 Java Env 变量的一部分而不是属性文件?这是一种安全的信息存储方式吗?对我来说,这似乎是一种非常笨重的信息存储方式。有没有可以分享的最佳实践/经验?
我能想到的一种选择是在景观中运行一个单独的配置服务,并使用 Env 属性连接到配置服务,然后查询配置服务以获取更多详细的配置数据。
java - 为什么 12 Factor 应用程序应该是自包含的?
在关于端口绑定的 12 Factor 文章 http://12factor.net/port-binding中,要求每个应用程序都是独立的,并且没有注入运行时,例如 Tomcat。出于什么原因,建议这样做......微服务的自包含应用程序有什么优势?
linux - 需要澄清十二因素应用程序宣言的第八个因素和守护进程
我指的是十二因素应用程序“宣言”,可以在这里找到:http: //12factor.net
在第八个因素中,作者写道:
十二因素应用程序进程不应守护或写入 PID 文件。相反,依靠操作系统的进程管理器(例如 Upstart,云平台上的分布式进程管理器,或开发中的 Foreman 等工具)来管理输出流、响应崩溃的进程以及处理用户启动的重启和关闭。
我不确定“进程永远不应该守护进程”是什么意思。
有人可以解释守护进程的优缺点 - 特别是在java进程的上下文中?另外,进程管理器不能管理守护进程吗?
java - 在 JVM 中将管理/管理任务作为一次性进程运行(12 因素应用程序)
有人可以提供一个将管理/管理任务作为一次性流程运行的示例(如 12 要素应用程序宣言的第 12 要素中所提出的),记住这将是在依赖 Gradle buildpack 的 JVM 应用程序的上下文中和在 Heroku 上运行?