[Elixir004]通过环境变量(Environment Variables)来管理config
在elixir的config中我们有时会使用的到一些不想暴露出来的配置项,常用的作法是如Phoenix
- #config/prod.exs
- use Mix.Config
- ...
- # Finally import the config/prod.secret.exs
- # which should be versioned separately.
- import_config "prod.secret.exs"
在上面,我们可以把不应该暴露的项(如数据库passwd,auth_token...这些很重要的项)都写在prod.secret.exs(链接可见例子)中
我们再把prod.secret.exs这个文件不要加到项目的版本管理中, 单独开一个git仓库管理。
但是有时我们并不想再这样,还有一种方法(而且感觉比上面这种方法更好用)
就是把所有的应该写在prod.sesret.exs的项都写到系统的环境变量中。
- #config/prod.exs
- use Mix.Config
- ....
- config :application_name, ApplicationName.Repo,
- adapter: Ecto.Adapters.MySQL,
- username: System.get_env("PROD_REPO_USERNAME"),
- password: System.get_env("PROD_REPO_PASSWORD"),
- database: System.get_env("PROD_REPO_DATABASE"),
- hostname: System.get_env("PROD_REPO_HOSTNAME")
- ...
这时只需要在服务器上
- #prod.env
export PROD_REPO_USERNAME='username'- export PROD_REPO_PASSWORD='loveyou'
- export PROD_REPO_DATABASE='database'
- export PROD_REPO_HOSTNAME='11.11.11.11'
只需要先
- >source prod.env
- >iex -S mix
这样就可以通过环境变量来管理elixir的配置啦。
What benchmarks done on my developer machine look like to all my friends
[Elixir004]通过环境变量(Environment Variables)来管理config的更多相关文章
- postman 用环境变量Environment实现多服务器版本
现存问题 在测试API期间,往往存在多种环境,对应IP地址(或域名也不同) 比如: Prod: http://116.62.25.57/ucows 用于开发完成发布到生产环境 Dev: http:// ...
- ABAP Netweaver和Cloud Foundry上的环境变量Environment Variable
Netweaver 更准确的说应该是系统变量:结构体sy 设一个断点,调试器里看这些字段的值就能知道每个字段是用来做什么的. sy-dbsys sy-sysid sy-opsys sy-saprl s ...
- 下载安装JDK,配置环境变量
Hello,JDK; 在开始学习JAVA之前,第一件事情肯定是被告知:先下载JDK.就像我的一个朋友问我的一样"JDK是个什么鬼?我学的不是JAVA么,为什么要下载JDK?". J ...
- NodeJS学习:环境变量
简介 环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数.会在程序运行时传递给应用程序. NodeJS 获取环境变量,是通过 glo ...
- JDK8安装包的下载安装方式以及环境变量的配置
前面我们介绍了 <Java是什么?>.<OracleJDK是什么?OracleJDK的版本怎么选择?>.<OpenJDK是什么?>以及<OracleJDK 与 ...
- [十六]SpringBoot 之 读取环境变量和绑定属性对象
1.读取环境变量 凡是被spring管理的类,实现接口EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的 ...
- CentOS中环境变量和配置文件
什么是环境变量 bash shell用一个叫做 环境变量(environment variable) 的特性来存储有关shell会话和工作环境的信息.即允许在内存中存储数据,使得在程序或shell中运 ...
- 【转】Linux将composer的bin目录放到PATH环境变量中
将composer的bin目录放到PATH环境变量中 使用composer global config bin-dir --absolute查看composer的bin目录 输出类似 Changed ...
- Linux environment variables (环境变量)
Environment variables are often used to store a list of paths of where to search for executables, li ...
随机推荐
- mysql-9索引
mysql索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度. 索引分为单列索引和组合索引. 单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索 ...
- Spring batch学习 持久化表结构详解(2)
#接上一篇 这一篇讲一下持久化需要表 batch_job_execution, batch_job_execution_context, batch_job_execution_params, bat ...
- VB.NET 指针
在.NET中,对指针指向数据的存储函数都封装在marshal类中,主要的函数包括:Copy.PtrToStringUni .PtrToStructure .OffsetOf.WriteXXX,Rrea ...
- 规则引擎以及blaze 规则库的集成初探之二——JSR94 的规则引擎API和实现
http://jefferson.iteye.com/blog/67839 规则引擎以及blaze 规则库的集成初探之二——JSR94 的规则引擎API和实现
- rdd去重
a=[[1,2,3,2,3,4],[3,4,5,6,7,5,3,2]]b=sc.parallelize(a) d=b.flatMap(lambda x:x) #铺平 ,形成一个rdd e=d.dis ...
- java中将数字的字符串表示转化为数字
int a = new Integer("1234").intValue() 或 int b = Integer.parseInt("1234") System ...
- Application.streamingAssetsPath
[Application.streamingAssetsPath] This API contains the path to the StreamingAssets folder (Read Onl ...
- MonoBehaviour.OnValidate
[MonoBehaviour.OnValidate] This function is called when the script is loaded or a value is changed i ...
- 使用heroku创建应用时报错 heroku does not appear to be a git repository
在跟着heroku的官方教程创建python应用时,到deploy-the-app这一步,要上传代码到heroku 的git仓库时,报的这个错误: 网上一搜,相关的答案居然极少,首页只出现一篇(还好这 ...
- Python 入门学习(壹)上机时间提醒
基于 Udacity 的 Python 入门课程 Programming Foundations with Python 基于 Python 2.7 控制台版本 思路 Project 1 是一个时间提 ...