[Visual Studio] 替 docker 環境下的專案添加環境變數

[Visual Studio] 替 docker 環境下的專案添加環境變數

[Visual Studio] Set enviroment variables in docker enviroment


2022/07/14 07:48:21

基於資安考量,一般會把 API Token 等機密資料放在環境變數裡,要用時再利用程式存取

var token = Environment.GetEnvironmentVariable("API_TOKEN");
if (token == null)
throw new System.Exception("API_TOKEN is null");

在 windows 環境變數在設定 > 系統 > 進階系統設定 > 環境變數可以設定
linux 更有一堆方法 set, export、改 .bashrc 等

但我就是找不到如何在 VS 裡面改 docker 的環境變數:直接用 docker exec bash 改的話,每次偵錯 VS 又會強制喬回來。

解決方法

先在專案根目錄創建 settings.env 檔案,放要設定的環境變數。如果有版控記得要把它 ignore 掉
例如:

API_TOKEN=XXXXXXXXXXXXXXXX
LANG=C.UTF-8

<專案>.csproj (點選專案名稱) 底下的 <PropertyGroup> 裡面加上一行

<DockerfileRunEnvironmentFiles>settings.env</DockerfileRunEnvironmentFiles>

完成之後重新載入專案,按下 執行就可以看到環境變數多了我們要的 API_TOKEN 了