【问题标题】:How to put ECS Docker Container ID into a Environmental Variable inside the Container如何将 ECS Docker 容器 ID 放入容器内的环境变量中
【发布时间】:2021-06-28 23:29:02
【问题描述】:

您好,我不知道这是否可行,但我在 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 服务时,环境变量应该会自动更改。

我尝试在 dockerfile 中这样做

来自 xxxxxxxxxxx.xxxx.ecr.eu-west-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 很陌生,所以非常感谢您的帮助!

【问题讨论】:

  • 好问题:b。容器 id 是在 docker run 之后创建的……你需要它的容器内的 id 吗?我有一个想法,但在重新启动该容器后会起作用。
  • 嘿!是的,我需要容器 id 作为其容器内的变量。如果您有任何想法,请分享并进行测试:)

标签: amazon-web-services docker environment-variables dockerfile amazon-ecs


【解决方案1】:

我设法弄清楚我到底需要做什么,我只是通过 dockerfile 中的入口点运行它并且它工作了 :)

另外@Durja 感谢您的信息!帮我弄清楚我的下一个与 IP 相关的问题☺️

【讨论】:

    【解决方案2】:

    如果可以在容器中安装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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-28
      • 2022-08-05
      • 2020-04-08
      • 1970-01-01
      • 2016-05-30
      • 2015-08-10
      • 1970-01-01
      • 2015-09-18
      相关资源
      最近更新 更多