文章目錄
啟動 ASP.NET Core 時傳入參數
團隊中有多個專案都有使用相同 source code,不過可以依據 config 不同而執行著不同任務的特性
sre 在處理這種類型的 application 時都是 build 一份 image,在部署時透過給不同的 env 來指定 container 用途
最近因為實驗性專案需求,想要在同個 container 中執行多個 application:同一份程式碼,透過不同 process 來執行不同任務 在這樣條件下,修改 env 跟調整 config file 都有些限制
修改 env
我想到的就是動態修改 env,但又不想汙染整個 container 的 enviroment 參數A
調整 config file
因為是同份 code,所以 config file 也是同一份,除非是產生兩份 config,但這的讓 build flow 變複雜
基本環境說明
- macOS Monterey 12.1
- .NET SDK 6.0.100
程式語法
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")); Console.WriteLine(Environment.GetEnvironmentVariable("mode"));
使用方式
確認可用
語法
{env_name1}={env_value1} {env_name2}={env_value2} dotnet {application}.dll
範例
mode=test ASPNETCORE_ENVIRONMENT=Prod dotnet ArrayConfig.dll
效果
其他嘗試 (失敗)
使用
,
所有內容都會指定成第一個 env 的 value
使用
;
只有最接近
dotnet
的 env 設定生效使用
&&
只有最接近
dotnet
的 env 設定生效使用
&
無效的設定方式
心得
我覺得這個應該是 shell 的使用技巧,但我關鍵字下得不好 沒能找到直接的說明
之前也遇過這個使用情境,當時也試了一輪才找到正確的設定方式,最近又試了一輪XD 雖然內容簡單但還是決定簡單紀錄一下
參考資訊
文章作者 Yowko Tsai
上次更新 2022-01-22
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。