Назад | Перейти на главную страницу

Как установить другое место назначения ('регион') агента ведения журнала aws cloudwatch внутри образа докера?

Вот мой файл докеров.

FROM 796678920264.dkr.ecr.us-west-1.amazonaws.com/myproject/base:latest

COPY /* /


RUN python awslogs-agent-setup.py --non-interactive -c /aws-log.myservice.cfg --region us-west-2


CMD ["/start.sh"]

Я использую dockerfile для создания образов, которые будут использоваться как в среде разработки, так и в производственной среде. Поведение определяется переменной env. то есть я сделаю что-то подобное, чтобы запустить контейнер докера: docker run -e ENV=dev -ti myservice

Одна проблема с этим файлом dockerfile заключается в том, что журналы в dev и prod отправляются в один и тот же журнал cloudwatch в регионе. us-west-2.

Могу ли я что-нибудь сделать, чтобы изменить регион для среды разработки на другое значение при запуске контейнера докеров? Желательно, чтобы им управляла одна и та же переменная среды.

Я добавляю и вызываю следующий скрипт в основном CMD скрипте

if [ "$ENV"  != "prod" ]; then
    AWSLOG_CONF=/var/awslogs/etc/aws.conf
    sed -i -e 's/region = us-west-2/region = ap-southeast-1/g' $AWSLOG_CONF
    echo 'Set the awslog region to ap-southeast-1'
fi

Сценарий должен быть вызван до запуска службы журнала aws.