这是我的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来构build将在dev和生产环境中使用的图像。 行为是由一个envvariables决定的。 即我会做这样的事情来启动一个docker容器: docker run -e ENV=dev -ti myservice
这个dockerfile的一个问题是:dev和prod中的日志被发送到us-west-2区域的同一个cloudwatch日志中。
有什么我可以做的,当一个docker集装箱启动时,将开发环境的区域更改为不同的值? 最好应该由相同的环境variables来控制。
我在主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日志服务启动之前调用。