bash - ECS Docker 容器获取运行 cron 的环境变量

标签 bash amazon-web-services docker cron environment-variables

我正在通过 AWS ECS 运行 docker 容器,并尝试使用 ecs-agent 设置的环境变量。具体来说,我正在捕获

$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

我以 root 身份登录到容器,当我检查 env 时,出现了上述内容。但是,当我使用 sudo 检查 env 时,环境变量不存在。

我正在运行一个使用此变量的 python 脚本,当我以 root 身份运行该脚本时,该脚本能够很好地找到环境变量并成功执行。但是我需要使用 cron 运行这个脚本。到目前为止,我还无法让 cron 运行并访问 root 环境变量。任何想法,将不胜感激。

最佳答案

我通过将该环境变量转储到文件中解决了这个问题。然后我从 cron 作业执行的脚本中获取该文件。

例如,在我的 Dockerfile 中,我有类似以下内容:

CMD echo "export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" > /src/containerCreds.sh && ...

然后,我的 cron 作业脚本获取包含导出的环境变量的文件。

. /src/conatinerCreds.sh

关于bash - ECS Docker 容器获取运行 cron 的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39074751/

相关文章:

mysql - Docker 容器异步运行

bash - 如何告诉 curl 在下载前检查文件是否存在?

bash - 如何 scp 文件名中带有冒号的文件?

amazon-web-services - 无法使用 terraform 在目标组中添加多个 target_id

amazon-web-services - 无法通过公共(public) IP 连接到我的 EC2 实例

mysql - 从 Docker 容器中的脚本创建数据库时与 MySQL 服务器失去连接

bash - 与托管以太坊节点的操作系统交互

bash - 删除行尾并且没有新段落

java - Spring AWS S3 : How to upload an image and get a URL which shows it rather than downloads it?

docker - docker-compose up在配置不变的情况下重新创建容器