我正在通过 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/