这是我的dockerfile。
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 来构建将在开发和生产环境中使用的镜像。行为由环境变量决定。即我将执行类似以下操作来启动 docker 容器:docker run -e ENV=dev -ti myservice
这个dockerfile的一个问题是:dev和prod中的日志都被发送到区域中的同一个cloudwatch日志us-west-2
。
当启动docker容器时,我可以做些什么来将开发环境的区域更改为不同的值?最好由相同的环境变量控制。
答案1
我在主 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 日志服务之前调用该脚本。