ECS Docker Container获取运行cron的env变量

时间:2016-08-22 08:34:29

标签: 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运行并访问根环境变量。任何想法,将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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

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

然后,我的cron作业脚本会找到包含导出的env var。

的文件
. /src/conatinerCreds.sh