[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 ...
随机推荐
- laravel下载文件
public function jobDownload(){ $realPath = public_path('download/job/postForm.xls'); $filename = '应聘 ...
- secureCRT下linux rz命令上传文件失败或变小(破损)的问题解决方法
在使用secureCRT的linux服务器时候,很多时候需要安装软件,而服务器本身是没有连接外网的 ,这时候就需要用到rz命令了. 在使用rz命令时候,有时候上传文件会失败,是因为上传的文件流中包含某 ...
- C#如何优雅的结束一个线程
大家都知道在C#里面,我们可以使用 Thread.Start方法来启动一个线程,当我们想停止执行的线程时可以使用Thread.Abort方法来强制停止正在执行的线程,但是请注意,你确定调用了Threa ...
- svn can't save server certificate
f I use any svn command communicating with the remote server I get the following error: Error valida ...
- Fragment生命周期(转)
Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计.平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且 ...
- 使用java代码编辑oracle数据库
package com.hanqi; import java.io.IOException; import java.sql.Connection; import java.sql.DriverMan ...
- springmvc web.xml配置之 -- ContextLoaderListener
首先回归一下web.xml的常用配置,看一个示例: <context-param> <param-name>contextConfigLocation</param-na ...
- FasterRCNN目标检测实践纪实
首先声明参考博客:https://blog.csdn.net/beyond_xnsx/article/details/79771690?tdsourcetag=s_pcqq_aiomsg 实践过程主线 ...
- [Training Video - 1] [Selenium Basics] [Download and Install Selenium]
Download Selenium Jars Configure jars in eclipse Webdriver http://docs.seleniumhq.org/download/ Sele ...
- ST-LINK驱动的安装
1.下载ST-LINK驱动ST-LINK_USB_V2_1_Driver 双击dpinst_amd64.exe来安装. 成功会显示: 2.进入MDK5里面去配置ST-LINK 通过魔术棒选项: a.D ...