用 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 的配置。

搞定!

原文地址:http://www.cnblogs.com/dudu/p/6985313.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人脸识别简要说明

近日,或许是毕业季来临,或许是研究人脸识别的同行增多。总之,通过博客找我的人可所谓“络绎不绝”。 这几年来,自己不断的抽些碎片时间,整理出来的人脸识别各个版本,于2017年9月26日发布的java的第一个版本…

37 个 MySQL 数据库小技巧,不看别后悔!

转载自 37 个 MySQL 数据库小技巧,不看别后悔! 无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学习它的哪些东西呢?…

《朝花夕拾》金句摘抄(四)

System.out.println("今天看到朝花夕拾"); System.out.println("很好的一部书"); System.out.println("看起来比较吃力,很难理解");我还能希求什么呢?我的心只得沉重着。灯火渐渐地缩小了,在预告石油的已经不多…

读《代码不朽:编写可维护软件的10大要则》C# 版

这本书特别针对没有接受过计算机科学或软件工程专业学习的软件开发人员,这类人员除了熟悉所用语言语法和语义之外,很少接受其他专业培训,对软件工程中的一些概念理解欠缺。软件设计方面考虑较少。如果要成为一个专业的程序员,就需…

mysql多表查询的分类

内连接 等值连接 非等值连接 自连接 外连接 inner join 等值连接 非等值连接 自连接 外连接

表单标签

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!--1使用 form标签 包裹数据提交的范围2通过action属性确定数据要提交的地址3通过method属性确定提交的方式 get方式1数据通过…

《朝花夕拾》金句摘抄(五)

System.out.println("今天看到朝花夕拾"); System.out.println("很好的一部书"); System.out.println("看起来比较吃力&#xff0c;很难理解");我仿佛记得曾坐小船经过山阴道&#xff0c;两岸边的乌桕&#xff0c;新禾&#xff0c;野花&#xff…

再有人问你volatile是什么,把这篇文章也发给他(深入分析)

转载自 再有人问你volatile是什么&#xff0c;把这篇文章也发给他 在上一篇文章中&#xff0c;我们围绕volatile关键字做了很多阐述&#xff0c;主要介绍了volatile的用法、原理以及特性。在上一篇文章中&#xff0c;我提到过&#xff1a;volatile只能保证可见性和有序性&…

Cockroach DB 1.0发布

分布式SQL数据库Cockroach DB遵循软件产品以动物命名的模式。近日&#xff0c;该数据库的第一个生产就绪版本1.0发布。 许多人将Cockroach DB视为Google Spanner的开源版本。后者是一个强一致性、横向可扩展的RDBMS&#xff0c;它起初是一个服务于谷歌服务的内部项目&#xff…

表格标签

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>创建表</title></head><body><table align"center" width"50%" border"1px" cellspacing"0px" cellpadding…

《朝花夕拾》金句摘抄(六)

System.out.println("终于看完朝花夕拾"); System.out.println("发现我不怎么适合看这类型的书&#xff0c;虽然对我有帮助"); System.out.println("下一本看金色梦乡");今年是“流言”鼎盛时代&#xff0c;稍一不慎&#xff0c;《现代评论》上就…

分享10道常考Java面试题及答案

转载自 分享10道常考Java面试题及答案 Hi&#xff0c;大家好&#xff0c;今天给大家分享10道常考的Java面试题及答案&#xff0c;涉及到Java中的10个方面。每个领域一道题。希望你能有收获。 <面向对象>什么是面向对象&#xff1f;什么是面向过程&#xff1f;面型对象…

对数据进行插入操作并且获取主键的值

eg. eg:工作中写定时模块&#xff0c;先插入时间段&#xff0c;然后直接获取id

编写高性能 .NET 代码 第二章:垃圾回收 基本操作

基本操作 垃圾回收的算法细节还在不断完善中&#xff0c;性能还会有进一步的提升。下文介绍的内容在不同的.NET版本里会略有不同&#xff0c;但大方向是不会有变动的。 在.net进程里会管理2个类型的内存堆&#xff1a;托管和非托管。本地代码申请的&#xff0c;以及由CLR申请…

《金色梦乡》金句摘抄(一)

System.out.println("《金色梦乡》"); System.out.println("小说类型的书就是比散文类型的书好看"); System.out.println("通俗易懂");&#xff0c;对于描写一个美好圆满的结局有些许抵触樋口晴子和平野晶约在一家荞麦面店见面。迟到的平野晶并无…

如何设计一个高可用的运营系统

转载自 如何设计一个高可用的运营系统 这是一篇来自粉丝的投稿&#xff0c;作者【林湾村龙猫】近一年在做关于运营活动方面的设计。本文是他的关于运营活动的总结&#xff0c;Hollis做了一点点修改。 概述 一个产品业务的发展总是离不开运营二字。随着业务快速的发展以及新…

《金色梦乡》金句摘抄(二)

System.out.println("《金色梦乡》"); System.out.println("小说类型的书就是比散文类型的书好看"); System.out.println("通俗易懂");电视里的播报员看上去像受了伤&#xff0c;声音却十分亢奋。关于爆炸之后的反应&#xff0c;他们的回答基本是…

.Net中的AOP系列之《AOP实现类型》

本系列的实验环境&#xff1a;VS 2017。 读完本章后&#xff0c;可能仍然不能实现自己的AOP工具&#xff0c;但应该对两种主要类型&#xff08;PostSharp和Castle DynamicProxy&#xff09;的AOP工具的运行原理有了基本的理解。PostSharp是一个在编译时编织的后期编译器&#x…