Вот мой файл докеров.
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.