docker - AWS ECS 根据环境指定配置文件
问题描述
我有两个应用程序(.net core 3.1 和 Angular 8),它们作为 docker 容器部署在 aws ecs 上。现在我想设置多个环境,例如质量、暂存、生产等。现在我想从特定配置文件中读取数据,以便暂存 docker 容器从 appsettings.staging.json 读取数据,而对于生产,它将从 appsettings 读取数据。生产.json。Angular 也一样。
我怎样才能做到这一点?我可以在 aws 中的 codebuild 中指定环境变量,但是如何告诉 docker 读取特定文件?
解决方案
一些随意的想法:
- 为不同的环境(UAT/DEV/PROD)创建不同的ECS集群。
- 对不同的环境使用相同的 docker 镜像(每个环境不重建镜像)
- 从参数存储 [1] 或 Secrets Manager [2] 中提取密钥/配置
- 将版本化配置文件保存在 S3 或 Git 中,并在容器初始化时将其拉下。不要使用图像烘焙配置。更好的是,没有配置文件,所有内容都从环境变量中读取。寻找像 confd ( https://github.com/kelseyhightower/confd )这样的解决方案
- 一般看如下:https ://12factor.net/
参考:
[1] https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html
[2] https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-tutorial.html
推荐阅读
- swift - 如何在 iOS 的 tableview 中找到第 n 个索引路径?
- ios - 从单元格 collectionView 中的点击中放松
- c++ - C++ 中的分段错误(特征库)
- angular - 最新版本的故事书不适用于 Angular2+ 项目
- r - 在闪亮的应用程序中同时显示多个范围的数据表行
- javascript - 带有php的javascript代码不起作用
- spring-boot - 使用 Spring Batch 将多个 CSV 文件加载到数据库中
- php - 没有模板的重定向?
- reactjs - React 日期选择器使用较旧的 React 版本
- r - Lodown 更新 NPPES NPI 提取