日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json

發布時間:2024/4/13 asp.net 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是我們使用阿里云容器服務基于 docker 容器部署 asp.net core 應用遇到的另一個問題 —— 如果將包含敏感信息的應用配置文件?appsettings.Production.json 傳遞給運行在容器中的 asp.net core 應用。

Docker 針對這樣的應用場景已經提供了解決方案 ——?Docker Secrets,對應的 docker 命令是?docker secret?。我們就用 docker secrets 解決了這個問題,在這篇隨筆中分享一下。

首先在阿里云容器服務中將?appsettings.Production.json 添加到 docker scrects :

進入集群管理的控制臺 -> “密鑰管理”,點擊“創建”按鈕添加一個 secret ,將 appsettings.Production.json 中的保存在這里(見下圖)。

如果不通過阿里云容器服務控制臺,可以直接使用 docker secret 命令添加(前提用 docker 客戶端連接到阿里云容器服務中對應的集群):

cat appsettings.Production.json | docker secret create cache-service-appsettings.Production.json -

接著修改編排(compose)文件,啟用這個 secret :

secrets:- cache-service-appsettings.Production.json

有了這個編排,容器啟動后,就可以在 /run/secrets 目錄中看到這個文件,并且可以查看文件中的配置內容:

root@511090335bb5:/# ls /run/secrets cache-service-appsettings.Production.json
root@511090335bb5:/# cat /run/secrets/cache-service-appsettings.Production.json

為了讓容器中的 asp.net core 應用能夠讀取到這個文件,我們采用的方法是在容器啟動時,將其復制到應用程序的根目錄中并重命名為?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 ,重新部署應用,運行在容器中的 asp.net core 應用就能成功讀取到保存在 docker secrets 中的 ?appsettings.Production.json 的配置。

搞定!

2017年6月22日更新

后來在實際時使用發現,當容器運行時,無法通過?docker secret rm 命令刪除 secret :

Error response from daemon: rpc error: code = 3 desc = secret 'cache-appsettings.Production.json' is in use by the following service: xxx

由于 docker secrets 無法直接更新,只能刪除后添加,但刪除需要停止容器,這對于生產環境是不能接受的。如果不采用先刪除后添加的方式,那只能每次更新時換一個secret名稱,但這樣編排文件也要跟著進行修改,很麻煩。

后來改用阿里云容器服務的NAS數據卷解決了這個問題,參考阿里云幫助文檔:

  • 創建 NAS 數據卷
  • 使用第三方數據卷

總結

以上是生活随笔為你收集整理的阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。