【问题标题】:Can I run aws-xray on the same ECS container?我可以在同一个 ECS 容器上运行 aws-xray 吗?
【发布时间】:2020-03-16 06:39:34
【问题描述】:

我不想为了启用 X-Ray 而部署整个其他 ECS 服务。我希望我可以在与我的应用程序相同的 docker 容器上运行 X-Ray,我原以为这是运行它的首选方式。我知道如果我的容器死了,可能会丢失一些数据。但我不太在意,我试图阻止这种只提供额外分析/日志功能的额外服务的扩散,我已经有一个我不满意的logstash容器,我的感觉是应用程序本身应该能够做这种事情。

【问题讨论】:

    标签: amazon-ecs aws-xray


    【解决方案1】:

    虽然我们有 X-Ray 守护程序的 Dockerhub 映像,但您绝对可以在与您的应用程序相同的 docker 容器中运行该守护程序 - 这应该不是问题。

    这是带有守护进程 dockerfile 和任务定义说明的典型设置: https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ecs.html

    我想您可以简单地省略守护程序周围的任务定义属性,因为它将在您的应用程序旁边本地运行 - 这些根本不会被使用。

    【讨论】:

    • 这更像是一个评论而不是一个答案,我需要一个实际的 Dockerfile 示例,该文档很容易获得,我有一个 tomcat 应用程序。
    【解决方案2】:

    所以我认为正确的方法是使用supervisord,有关示例,请参见链接,但我最终只制作了一个非常简单的脚本:

    # start.sh
    /usr/bin/xray &
    $CATALINA_HOME/bin/catalina.sh run
    
    

    然后有一个 Dockerfile:

    FROM tomcat:9-jdk11-openjdk
    
    RUN apt-get install -y unzip
    RUN curl -o daemon.zip https://s3.dualstack.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-linux-3.x.zip
    RUN unzip daemon.zip && cp xray /usr/bin/xray
    
    # COPY APPLICATION
    # TODO
    
    COPY start.sh /usr/bin/start.sh
    RUN chmod +x /usr/bin/start.sh
    
    CMD ["/bin/bash", "/usr/bin/start.sh"]
    
    

    我想我下次会考虑使用supervisord

    【讨论】:

    • 别忘了给你的容器一个角色来访问 X-Ray。
    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2017-10-26
    • 2021-08-29
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多