首页 > 解决方案 > 如何在 EC2 实例下向容器添加文件?

问题描述

我有一个需要在 AWS 中部署的应用程序。

应用程序具有默认属性,应该使用 overrides.properties 文件为每个 env(qa/prd 等)覆盖这些属性。

应用程序的源代码组成 docker 镜像并发送到 GPR。

我有一个 CDK 存储库,它从 GPR 获取 docker 映像,将其存储在 ECR 中,并使用 AutoScaling Group 创建一个 Fargate 服务。

在这里,我必须以某种方式将默认属性覆盖为不同环境的特定属性。

CDK 中是否有一个选项可以在运行 docker 容器之前将文件(overrides.properties)添加到 docker 映像或将其传递给 ec2 实例?

标签: amazon-web-servicesdockeraws-cdkaws-fargateamazon-ecr

解决方案


如果有人发现自己处于类似情况 - 发布@gshpychka 提出的解决方法

可以将所需的属性设置为环境变量,并将用于将环境变量存储到特定文件的脚本添加到映像的 Dockerfile。

示例脚本:

env | while IFS= read -r line; do
  echo "$line" >> /your/file/here
done

推荐阅读