Могу ли я запустить aws -xray в том же контейнере ECS? - PullRequest
0 голосов
/ 16 марта 2020

Я не хочу развертывать совершенно другую службу ECS только для того, чтобы включить X-Ray. Я надеюсь, что смогу запустить X-Ray на том же контейнере docker, что и мое приложение, я бы подумал, что это предпочтительный способ его запуска. Я знаю, что в случае смерти моего контейнера может произойти потеря данных. Но меня это не сильно волнует, я пытаюсь остановить распространение дополнительных сервисов, которые служат только дополнительным аналитическим / журналирующим функциям, у меня уже есть контейнер logsta sh, который меня не устраивает, я чувствую, что Сами приложения должны быть в состоянии делать такие вещи.

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Так что я думаю, что правильный способ сделать это - использовать 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 в следующий раз.

0 голосов
/ 17 марта 2020

Хотя у нас есть образ Dockerhub X-Ray Daemon, вы можете абсолютно точно запустить демон в том же контейнере docker, что и ваше приложение - это не должно быть проблемой.

Вот типичный пример Настройка с помощью файла docker-файла демона и инструкций по определению задачи: https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ecs.html

Я предполагаю, что вы можете просто опустить атрибуты определения задачи вокруг демона, поскольку он будет работать локально рядом с вашим приложением - эти не будет использоваться вообще.

...