2017-03-02 380 views
0

我尝试启动dockercontainer内的filebeat。如何在Docker容器内启动filebeat?

在开始时我尝试这个Dockerfile

FROM tomcat:8.5 
RUN rm -Rf /usr/local/tomcat/webapps/ROOT/* 
RUN mkdir /usr/local/tomcat/webapps-my 

COPY filebeat/ /opt/filebeat/ 
RUN chmod +x /opt/filebeat/filebeat 

COPY db-creator.jar /opt/db-creator/ 

COPY ./docker-entrypoint.sh/
RUN chmod +x /docker-entrypoint.sh 
ENTRYPOINT ["/docker-entrypoint.sh"] 
ENTRYPOINT ["/opt/filebeat/filebeat", "-e", "-c", "/opt/filebeat/filebeat.yml"] 
COPY server.xml /usr/local/tomcat/conf 
COPY my.war /usr/local/tomcat/webapps-my/ROOT.war 

CMD ["catalina.sh", "run"] 

在这种情况下filebeat启动开始,但它在控制台的工作原理和Tomcat没有启动。 现在我试着开始filebeat作为服务

FROM tomcat:8.5 
RUN curl -L -O https://artifacts.elastic.co/downloads/beats/fileb... 
RUN dpkg -i filebeat-5.2.2-amd64.deb 
COPY filebeat.yml /etc/filebeat 
RUN update-rc.d filebeat defaults 95 10 

COPY db-creator.jar /opt/db-creator/ 
COPY ./docker-entrypoint.sh/
RUN chmod +x /docker-entrypoint.sh 
ENTRYPOINT ["/docker-entrypoint.sh"] 

RUN rm -Rf /usr/local/tomcat/webapps/ROOT/* 
COPY server.xml /usr/local/tomcat/conf 
RUN mkdir /usr/local/tomcat/webapps-my 
COPY my.war /usr/local/tomcat/webapps-iqp/ROOT.war 

CMD ["catalina.sh", "run"] 

但还是老样子根本不会启动。 在这些varint之前,我有一些其他varints,但他们不工作。 例如像这样

CMD [ “/etc/init.d/filebeat”, “开始”]

如何开始filebeat?

回答

3

你的方法有点不对。 想想微服务体系结构。每个容器需要一个微服务。

请尝试以下操作:

您需要2个独立的容器在这里。一个用于tomcat,另一个用于filebeat。然后,您将在适当的位置在tomcat容器中安装卷,以便在那里获取日志文件。

然后,您将在filebeat上同时挂载相同的日志卷,同时只读,并使用filebeat开始发送日志。

这样你就会尊重微服务架构和docker的哲学。

相关问题