2017-09-27 40 views
0

嗨我想用aws日志代理服务创建Docker镜像。 下面的脚本我写为aws日志代理创建Docker镜像 - 错误

我Dockerfile

FROM ubuntu:latest 

ENV AWS_REGION ap-northeast-1 

RUN apt-get update && apt-get install -y curl python python-pip \ 
     && rm -rf /var/lib/apt/lists/* 
COPY awslogs.conf ./ 

RUN curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O 
RUN chmod +x ./awslogs-agent-setup.py 
RUN ./awslogs-agent-setup.py --non-interactive --region ${AWS_REGION} --configfile ./awslogs.conf 


RUN apt-get purge curl -y 

RUN mkdir /var/log/awslogs 
WORKDIR /var/log/awslogs 

CMD /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 

*********************结束档案*******的**********************

建筑形象过程中出现了以下错误

Step 1 of 5: Installing pip ...DONE 

Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE 


Step 5 of 5: Setting up agent as a daemon ...Traceback (most recent call last): 
    File "/awslogs-agent-setup.py", line 1272, in <module> 
    main() 
    File "/awslogs-agent-setup.py", line 1268, in main 
    setup.setup_artifacts() 
    File "/awslogs-agent-setup.py", line 827, in setup_artifacts 
    self.setup_daemon() 
    File "/awslogs-agent-setup.py", line 773, in setup_daemon 
    self.setup_agent_nanny() 
    File "/awslogs-agent-setup.py", line 764, in setup_agent_nanny 
    self.setup_cron_jobs() 
    File "/awslogs-agent-setup.py", line 734, in setup_cron_jobs 
    with open (nanny_cron_path, "w") as cron_fragment: 
IOError: [Errno 2] No such file or directory: '/etc/cron.d/awslogs' 
The command '/bin/sh -c python /awslogs-agent-setup.py -n -r eu-west-1 -c ./awslogs.conf.dummy' returned a non-zero code: 1 

请帮我解决这个问题。

回答

2

你只是缺少dockerfile中的cron包。如果您在系统上安装了cron,则无关紧要。

FROM ubuntu:latest 

ENV AWS_REGION ap-northeast-1 

RUN apt-get update && apt-get install -y curl python cron python-pip \ 
     && rm -rf /var/lib/apt/lists/* 
COPY awslogs.conf ./ 

RUN curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O 
RUN chmod +x ./awslogs-agent-setup.py 
RUN ./awslogs-agent-setup.py --non-interactive --region ${AWS_REGION} --configfile ./awslogs.conf 


RUN apt-get purge curl -y 

RUN mkdir /var/log/awslogs 
WORKDIR /var/log/awslogs 

CMD /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 

增加的cron包dockerfile后一切工作正常

Step 1 of 5: Installing pip ...DONE 

Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE 


Step 5 of 5: Setting up agent as a daemon ...DONE 


------------------------------------------------------ 
- Configuration file successfully saved at: /var/awslogs/etc/awslogs.conf 
- You can begin accessing new log events after a few moments at https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#logs: 
- You can use 'sudo service awslogs start|stop|status|restart' to control the daemon. 
- To see diagnostic information for the CloudWatch Logs Agent, see /var/log/awslogs.log 
- You can rerun interactive setup using 'sudo python ./awslogs-agent-setup.py --region us-west-2 --only-generate-config' 
------------------------------------------------------ 
+0

我创建图像后,我可以只输入此命令(码头运行-t docker_image_name)来获取cloudwatch仪表板中的日志..? –

+0

我不确定你使用过的图书馆是如何工作的。我只是为你解决了安装问题。所以你需要弄清楚下一部分 –

0

您是否检查过cron守护程序实际安装在您的系统上?

在另一方面,你可以,你可以尝试手动安装pip3.5安装awscli-cwlogs或apt-get的更新& &的apt-get安装-y蟒蛇点子libpython-dev的

你可以参考this question

+0

是现在尝试。相同的结果。 –