如何将 ECS Docker 容器 ID 放入容器内的环境变量中
How to put ECS Docker Container ID into a Environmental Variable inside the Container
嗨,我不知道这是否可行,但我在 aws 中有一个 docker 容器
[ec2-user@ip-10-200-40-182 ~]$ docker ps
CONTAINER ID IMAGE
74566049de08 xxxxxx.xxxxx.io/customers/xxxxxxx/lin/ema:5.0.6
我想获取该容器 ID 并将其放入该 docker 容器内的环境变量中
这需要是动态的,所以每次我反弹 ecs 服务时,环境变量应该自动改变。
我试图在 docker 文件中这样做
从xxxxxxxxxxx.xxxx.ecr.eu-西-1.amazonaws.com/xxxxxxxxx:xxxxxxx
RUN uname -n > /test/tmp.log && \
export test_JMX_MANAGEMENTNODEHOSTNAME=$(cat /test/tmp.log)
但是每次我进入容器并回显 $test_JMX_MANAGEMENTNODEHOSTNAME 时,我得到的是 $(cat /test/tmp.log) 而不是容器 ID。我对 docker 有点陌生非常感谢您的帮助!
如果您可以在容器内安装aws cli,您可以在容器启动时调用ecs describe任务获取容器id并将其设置为容器内的env变量。
参考:
https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Container.html
https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-tasks.html
我设法弄清楚我到底需要做什么,我只是 运行 它通过 dockerfile 中的入口点并且它起作用了:)
也感谢@Durja 提供的信息!帮我解决了下一个与 IP 相关的问题 ☺️
嗨,我不知道这是否可行,但我在 aws 中有一个 docker 容器
[ec2-user@ip-10-200-40-182 ~]$ docker ps
CONTAINER ID IMAGE
74566049de08 xxxxxx.xxxxx.io/customers/xxxxxxx/lin/ema:5.0.6
我想获取该容器 ID 并将其放入该 docker 容器内的环境变量中
这需要是动态的,所以每次我反弹 ecs 服务时,环境变量应该自动改变。
我试图在 docker 文件中这样做
从xxxxxxxxxxx.xxxx.ecr.eu-西-1.amazonaws.com/xxxxxxxxx:xxxxxxx
RUN uname -n > /test/tmp.log && \
export test_JMX_MANAGEMENTNODEHOSTNAME=$(cat /test/tmp.log)
但是每次我进入容器并回显 $test_JMX_MANAGEMENTNODEHOSTNAME 时,我得到的是 $(cat /test/tmp.log) 而不是容器 ID。我对 docker 有点陌生非常感谢您的帮助!
如果您可以在容器内安装aws cli,您可以在容器启动时调用ecs describe任务获取容器id并将其设置为容器内的env变量。
参考:
https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Container.html
https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-tasks.html
我设法弄清楚我到底需要做什么,我只是 运行 它通过 dockerfile 中的入口点并且它起作用了:)
也感谢@Durja 提供的信息!帮我解决了下一个与 IP 相关的问题 ☺️