[Elixir003]通過環境變數(Environment Variables)來管理config

来源:http://www.cnblogs.com/zhongwencool/archive/2016/03/14/elixir_config_env.html
-Advertisement-
Play Games

在elixir的config中我們有時會使用的到一些不想暴露出來的配置項,常用的作法是如Phoenix 在上面,我們可以把不應該暴露的項(如資料庫passwd,auth_token...這些很重要的項)都寫在prod.secret.exs(鏈接可見例子)中 我們再把prod.secret.exs這個


在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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • -->位元組碼解釋器工作就是通過改變這個計數器的值來選取下一條需要執行的位元組碼指令,分支、迴圈、跳轉、異常處理、線程恢復等基礎功能都需要依賴計數器來完成。 -->為了線程切換後能恢復到正確的執行位置,每條線程都需要一個獨立的程式計數器,各條線程之間計數器互不影響,獨立存儲,我們稱這類記憶體區域為"線程私
  • 初學python第一天,希望自己真正瞭解電腦語言,並且做出成效。   寫下學習筆記,記錄學習進度,娛樂學習,不斷成長。   python詳細介紹:   python是什麼?運用到哪裡?有哪些在使用它? python是一門編程語言,可以運用到各種場景,基本大型公司都在用它,主要運用在網路編程方面。如
  • 這是個Linux上簡易的http伺服器實現,主要就是tcp socket 和 pipe管道cgi重定向. 解析http協議. 簡單的處理並反饋給客戶端.並附帶一個client.c 測試服務端. 比較簡陋 去掉註釋400行以下. 能夠幫我們加深web伺服器的理解.
  • Java是天生就支持併發的語言,支持併發意味著多線程,線程的頻繁創建在高併發及大數據量是非常消耗資源的,因為java提供了線程池。在jdk1.5以前的版本中,線程池的使用是及其簡陋的,但是在JDK1.5後,有了很大的改善。JDK1.5之後加入了java.util.concurrent包,java.u
  • 本篇分兩部分:   在 OC 開發中,我們通常會將 error 置為 nil   在絕大多數情況下,這個方法並不會發生什麼錯誤,所以我們將 error 直接設置為 nil。但是出錯的時候可能就會無從下手進行調試。在 Swift 中引入了異常機制,這讓我們老牌程式員感到異常親切,因為在 java 或
  • 繼承 概念: ①   繼承背後的思想就是基於已存在的類來構建新類; ②   當從已存在類繼承時,就重用了它的方法和屬性,還可以添加新的方法和屬性來定製新類以應對需求; ③   當從其它類導出的類叫作子類,被導出的類叫作父類; ④   在Java中,除了Object類外,所有類都是子類,都有唯一父類;
  •  
  • 今天真是被自己的懶惰和複製粘貼給坑慘了... 網上有這麼一個spring下載文件的最佳實踐: 可以看到返回狀態給的是HttpStatus.CREATED(201),這個當時想當然的認為既然是下載文件,肯定是新創建,所以create也沒什麼,也就沒進一步仔細查詢一下201狀態碼的意義.然後呢這段代碼實
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...