用 docker secrets 保存 appsettings.Production.json
這是我們使用阿里云容器服務(wù)基于 docker 容器部署 asp.net core 應(yīng)用遇到的另一個(gè)問題 —— 如果將包含敏感信息的應(yīng)用配置文件?appsettings.Production.json 傳遞給運(yùn)行在容器中的 asp.net core 應(yīng)用。
Docker 針對這樣的應(yīng)用場景已經(jīng)提供了解決方案 ——?Docker Secrets,對應(yīng)的 docker 命令是?docker secret?。我們就用 docker secrets 解決了這個(gè)問題,在這篇隨筆中分享一下。
首先在阿里云容器服務(wù)中將?appsettings.Production.json 添加到 docker scrects :
進(jìn)入集群管理的控制臺(tái) -> “密鑰管理”,點(diǎn)擊“創(chuàng)建”按鈕添加一個(gè) secret ,將 appsettings.Production.json 中的保存在這里(見下圖)。
如果不通過阿里云容器服務(wù)控制臺(tái),可以直接使用 docker secret 命令添加(前提用 docker 客戶端連接到阿里云容器服務(wù)中對應(yīng)的集群):
cat appsettings.Production.json | docker secret create cache-service-appsettings.Production.json -接著修改編排(compose)文件,啟用這個(gè) secret :
secrets:- cache-service-appsettings.Production.json有了這個(gè)編排,容器啟動(dòng)后,就可以在 /run/secrets 目錄中看到這個(gè)文件,并且可以查看文件中的配置內(nèi)容:
root@511090335bb5:/# ls /run/secrets cache-service-appsettings.Production.jsonroot@511090335bb5:/# cat /run/secrets/cache-service-appsettings.Production.json
為了讓容器中的 asp.net core 應(yīng)用能夠讀取到這個(gè)文件,我們采用的方法是在容器啟動(dòng)時(shí),將其復(fù)制到應(yīng)用程序的根目錄中并重命名為?appsettings.Production.json :
command: bash -c "cp /run/secrets/cache-service-appsettings.Production.json /app/appsettings.Production.json && cd /app && dotnet Cnblogs.Cache.WebApi.dll"添加了 secret ,修改好 compose ,重新部署應(yīng)用,運(yùn)行在容器中的 asp.net core 應(yīng)用就能成功讀取到保存在 docker secrets 中的 ?appsettings.Production.json 的配置。
搞定!
原文地址:http://www.cnblogs.com/dudu/p/6985313.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的用 docker secrets 保存 appsettings.Production.json的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事件总线(Event Bus)知多少
- 下一篇: 读《代码不朽:编写可维护软件的10大要则